メールの 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
ありがとう!