Max*_*ant 0 ruby validation ruby-on-rails
我有一个嵌套的表单,我希望验证某些字段,才能选择特定字段。
我的第一个字段是一个单选按钮:
<%= f.radio_button :type_doc, '5' %>
<%= f.radio_button :type_doc, '6' %>
<%= f.radio_button :type_doc, '7' %>
Run Code Online (Sandbox Code Playgroud)
然后(例如)如果我选择类型为“6”的单选按钮,我想要这个
<%= f.text_field :number_doc, :placeholder => 'Number' %>
Run Code Online (Sandbox Code Playgroud)
被填满。
我已经尝试过官方文档中的解释:Rails 活动记录验证
所以,在我的 doc.rb 模型中,我有这个:
validates :number_doc, presence: true, if: :type_6?
def type_6?
:type_doc == '6'
end
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我仍然可以选择 :type_doc == 6 并让我的字段 :number_doc 为空。
有任何想法吗 ?谢谢
小智 6
您可以简单地使用 Lambda:
validates :number_doc, presence: true, if: -> { self.type_doc == '6' }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2399 次 |
| 最近记录: |