我正在尝试验证从 CSV 电子邮件列表中给出的电子邮件。所以我创建了invite_list 虚拟属性,当给定电子邮件列表时,它会循环并在invite_only_emails 模型中创建新记录。
现在的问题是,这很好用,但是我怎样才能在用户模型中循环时捕获 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
这是被邀请的_only_emails 模型:
class InvitedOnlyEmail < ActiveRecord::Base
attr_accessible :email
belongs_to :users
validates_format_of :email, :with => /^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i
end
谢谢!