0

我正在尝试验证从 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

谢谢!

4

2 回答 2

1

我认为你可以使用validates_associated方法:

class User < ActiveRecord::Base
  validates_associated :invited_only_emails
  # ...
end

http://apidock.com/rails/ActiveRecord/Validations/ClassMethods/validates_associated

于 2013-06-20T20:02:12.187 回答
0

你看过validates_associated吗?

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

于 2013-06-20T20:02:07.973 回答