【问题标题】:How do i validate fields in the other rails table?如何验证其他 rails 表中的字段?
【发布时间】:2012-07-31 23:26:18
【问题描述】:

好的,我有一个联系人模型

class Contact < ActiveRecord::Base
  has_one :profile
  validates_presence_of :first_name
  validates_presence_of :last_name
  validates_presence_of :email

class Profile < ActiveRecord::Base
   belongs_to :contact

在我的表单上,我有来自该个人资料的字段,并且显示了联系人和联系人的验证,但我想验证个人资料中的字段。我认为将它添加到控制器会添加到错误消息中。

    @contact.errors.add(:base, "Profile Company cant be blank")

任何想法

我的表单是 form_tag 顺便说一句,由于各种原因我无法更改它..

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 validation


    【解决方案1】:

    如果要在保存所属记录时检查关联记录的有效性:

       class Contact
            validates_associated :profile
    

    【讨论】:

    • 但我不想验证每条记录......只是当参数中的配置文件......这可能
    • 您可以扩展ActiveModel::EachValidator,它会传递当前记录,您可以从表单中检查是否在记录上设置了属性。类似这个答案:stackoverflow.com/questions/7387459/…
    【解决方案2】:

    我不确定这是否可行

    class Contack < ActiveRecord::Base
      validates_associated :profile,
        :if => Proc.new { |a| a.profile.present? }
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-26
      • 1970-01-01
      • 2012-05-19
      • 2017-11-13
      • 1970-01-01
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多