使用SimpleForm,我是否可以设置:label_method和:value_method的默认值,这样就不必为每个输入都设置默认值了?
默认情况下,我的意思是为所有输入设置label_method和value_method的地方,因此无需为每个输入设置它们。
示例:
代替此:
<%= f.association :model_in_question, include_blank: false, label_method: :label_for_form, value_method: :value_for_form %>
我想要这个:
<%= f.association :model_in_question, include_blank: false %>
答案 0 :(得分:0)
我认为这是您想要的:
Simple form association custom label name
<%= f.association :owner_type, :include_blank => false, :label_method => lambda { |owner| "#{owner.name} | #{owner.subtype_name}" } %>
相同的逻辑适用于value_method。因此,如果您有模型,则可以创建一个名为label_for_form
和value_for_form
的方法,这些方法返回所需的值。然后以您的形式:
<%= f.association :model_in_question, include_blank: false, label_method: :label_for_form, value_method: :value_for_form %>
只要您集合中的对象对这两种方法都做出响应,就无需手动以表格形式写出集合。