0

我有用户和客户,它们都有一个地址。我想让 address.street 只对客户是必需的。我怎样才能做到这一点?

4

2 回答 2

2

您可以编写自己的自定义验证,如下所示:

class Address < ActiveRecord::Base
  validate :client_street_required

  def client_street_required
    if self.street.blank? and !self.Client.blank?
      errors.add(:street, "required")
    end
  end

end
于 2012-05-02T20:00:52.977 回答
1

标准方法是将条件放入验证中。看看rails_doc

class Address < ActiveRecord::Base

  validate :street, :presence => true, :unless => 'client.nil?'

end
于 2012-05-02T20:54:42.683 回答