0

レール 2.3.5

sub_report_name チェックボックスがチェックされているかどうかの事前確認のみを検証したいとしsub_report_activeます。ただし、sub_report_activeモデルの一部ではありません。これはフォーム フィールドとパラメータですがcheck_bok_tag、モデル フィールドではありません。

sub_report_activeモデルのフィールドではないモデルのパラメーター/フォームフィールドを参照できますか(以下のように..私が試したフォームの.excpetはモデルで認識されません)。

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

2 に答える 2

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 に答える
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 に答える