SimpleForm(可以设置默认的label_method和value_method参数吗?)

时间:2019-06-14 12:31:39

标签: ruby-on-rails simple-form ruby-on-rails-5.2 simple-form-for

使用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 %>

1 个答案:

答案 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_formvalue_for_form的方法,这些方法返回所需的值。然后以您的形式:

<%= f.association :model_in_question, include_blank: false, label_method: :label_for_form, value_method: :value_for_form %>

只要您集合中的对象对这两种方法都做出响应,就无需手动以表格形式写出集合。