【问题标题】:SimpleForm (Can you set default label_method and value_method parameters?)SimpleForm(你能设置默认的 label_method 和 value_method 参数吗?)
【发布时间】:2019-06-14 12:31:39
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    我想这就是你要找的东西:

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

    只要您的集合中的对象对这两种方法都有响应,那么您就不需要在表单中手动写出集合。

    【讨论】:

      猜你喜欢
      • 2016-02-10
      • 1970-01-01
      • 1970-01-01
      • 2010-12-25
      • 2019-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多