matzbara の回答履歴
- 特定のactionでのみvalidation
rails2、mySQLです。 モデルにバリデーションを書くのは知っているのですが 特定のコントローラのメソッドでのみバリデーションしたいとき どうすればよいのでしょう。 Userモデルに書いた場合 class User < ActiveRecord::Base validates_format_of :email_address, :with => /[a-zA-Z0-9_-]+\@[a-zA-Z0-9_-]+\.\w+/, :allow_blank => true, :message => "有効なEメールアドレスではないようです。" validates_uniqueness_of :email_address, :allow_blank => true, :allow_nil => true, :message => "このアドレスは既に使用されています。" end class UserController < ApplicationController def email_conf self.index u = User.find :first, :conditions=>["user_name = ?",@user_name ] unless u u = User.new(:user_name => @user_name) end u["email_address"] = params[:email_address] if u.valid? u.save render :text => '<div>thank you!</div>' else render :text => "#{u.errors[:email_address]}" end end end これだとほかのアクションの場合もバリデーションを行えばこのパターンのみになりますよね。 userコントローラの email_conf でデータ登録するときのみ、このバリデーションをしたいのですが。。
- ベストアンサー
- Ruby
- natural_mi
- 回答数1
- Rubyを用いたシステムのメリットは・・?
エンジニアではないため、簡単にポイントを教えていただけるとありがたいです。 少し前に流行っていたと聞いたことがあります。 また、Rubyに次ぐ注目の言語などがあれば合わせておしらせいただけますと幸いです。 宜しくお願いします。