2012-10-31 67 views
0

我有一個帶有類別選擇框的表單。如果選擇了特定的類別,則向用戶顯示另一個選擇框/下拉菜單。選擇此類別時,我需要將此第二個下拉列表作爲必填字段。在某些情況下使選擇框成爲必填字段

我不能將validates :course, :presence => {:message => 'Course cannot be blank.'}添加到模型中,因爲此字段並非總是必需的,我需要一些其他方式才能使其僅在第一個保存框中選擇某個類別時才需要。

感謝您的幫助

回答

0

你可以嘗試使用if參數validates,像這樣:

validates :course, :presence => {:message => "Course cannot be blink."}, :if => Proc.new { |u| u.first_dropdown_value == 'value_that_you_validate_courses_for' } 

欲瞭解更多信息,請查看Rails documentation on conditional validation

+0

第一個選擇框設置privacy_level的值。我添加了以下內容: 驗證:course_id,:presence => {:message =>「課程不能空白。」},:if => Survey.new {| u | u.privacy_level == 1}但我得到以下錯誤:未定義的方法'驗證'爲#<調查:0x00000003b92230> – marimaf

+0

使用':if => Proc.new {| s | s.privacy_level == 1}'。還可以查看[使用符號:if和:unless](http://guides.rubyonrails.org/active_record_validations_callbacks.html#using-a-symbol-with-if-and-unless),這可能會使代碼更清潔如果它變得更長。 – girasquid

+0

謝謝,它與Proc合作。對於那個很抱歉。謝謝你的幫助! – marimaf

相關問題