0

メールの CSV リストから送信されたメールを検証しようとしています。そこで、電子メールのリストが与えられるとループして、invated_only_emails モデルに新しいレコードを作成する、invite_list 仮想属性を作成しました。

これで問題なく動作しますが、Users モデルのループ中に InvitedOnlyEmail によってスローされた検証エラーをキャッチして、コントローラーでそのエラーを使用できるようにするにはどうすればよいでしょうか?

これは私の主なモデルです:

class Users < ActiveRecord::Base
attr_accessor :invite_list
attr_accessible :invite_list

has_many :invited_only_emails

  def invite_list=(list)
    list.split(",").each do |address|
        self.invited_only_emails.create! :email => address
      end
  end

  def invite_list
    self.invited_only_emails.map {|email| email.email}.join(',')
  end
end

これは、invated_only_emails モデルです。

class InvitedOnlyEmail < ActiveRecord::Base
  attr_accessible :email
  belongs_to :users

  validates_format_of :email, :with => /^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i

end

ありがとう!

4

2 に答える 2

0

あなたは見ましたvalidates_associatedか?

http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#method-i-validates_associated

于 2013-06-20T20:02:07.973 に答える