将 form_for 语法转换为 simple_form 语法
Translating form_for syntax to simple_form syntax
我的 rails 表单中有此代码:
Categories: <%= f.collection_select :tag_ids, Tag.order(:name), :id, :name, {}, {multiple: true} %>
此代码有效,但我想使用 simpleform gem 重新设计我的表单。但是,我似乎无法弄清楚如何将此代码 'translate' 转换为简单形式。任何人都知道如何?谢谢
像这样应该可以解决问题:
如果您有多对多关系,您可以先尝试默认值。
<%= f.association :tags %>
如果默认值不起作用,您可以明确 collection:
<%= f.input :tag_ids, as: :select, collection: Tag.order(:name), label_method: :name, input_html: {multiple: true} %>
# or
<%= f.input :tag_ids, as: :select, collection: Tag.order(:name).pluck(:name, :id), input_html: {multiple: true} %>
或者,如果您定义了 Tag#to_label 方法,则不必传递标签方法的名称。 Tag#id 被用作默认值方法。如果您想要另一个值,请指定方法,如下所示:value_method: :something_else
.
请参阅 simple_form Usage section(介绍、collection 和关联)。
我的 rails 表单中有此代码:
Categories: <%= f.collection_select :tag_ids, Tag.order(:name), :id, :name, {}, {multiple: true} %>
此代码有效,但我想使用 simpleform gem 重新设计我的表单。但是,我似乎无法弄清楚如何将此代码 'translate' 转换为简单形式。任何人都知道如何?谢谢
像这样应该可以解决问题:
如果您有多对多关系,您可以先尝试默认值。
<%= f.association :tags %>
如果默认值不起作用,您可以明确 collection:
<%= f.input :tag_ids, as: :select, collection: Tag.order(:name), label_method: :name, input_html: {multiple: true} %>
# or
<%= f.input :tag_ids, as: :select, collection: Tag.order(:name).pluck(:name, :id), input_html: {multiple: true} %>
或者,如果您定义了 Tag#to_label 方法,则不必传递标签方法的名称。 Tag#id 被用作默认值方法。如果您想要另一个值,请指定方法,如下所示:value_method: :something_else
.
请参阅 simple_form Usage section(介绍、collection 和关联)。