0

导轨 2.3.5

假设我只想验证sub_report_name 是否选中了复选框sub_report_active。但是,sub_report_active不是模型的一部分。它是一个表单字段和一个参数,但check_bok_tag不是一个模型字段。

您能否引用模型中不是模型字段的参数/form_field(如下所示..sub_report_active我尝试过的任何形式的.excpet在模型中都无法识别)。

validates_presence_of :sub_report_name, :if=> sub_report_active == 'YES'
4

2 回答 2

0

我不知道你可以,但你可以通过使用 attr_accessor 轻松地其设置为模型字段,而无需相应的数据库列:

class YourModel < ActiveRecord::Base
  attr_accessor :sub_report_active
  validates_presence_of :sub_report_name, :if => proc{ |m| m.sub_report_active == 'YES' }
end
于 2012-05-28T15:04:35.840 回答
0

这有效(包括需要将 sub_report_active 从 check_box_tag 更改为 f.check_box。

class Report < ActiveRecord::Base
  attr_accessor :sub_report_active

  validates_presence_of :sub_report_name, :if => :sub_report_active_yes?, :message => " must be entered if 'Sub Report Active?'' is checked."

  def sub_report_active_yes?
    sub_report_active == 'YES'
  end
End
于 2012-05-28T15:41:39.840 回答