将form_for语法翻译为simple_form语法

时间:2018-05-12 16:02:00

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

我在我的rails表格中有这个代码:

  Categories: <%= f.collection_select :tag_ids, Tag.order(:name), :id, :name, {}, {multiple: true} %>

此代码正常运行,但我想使用simpleform gem重新设计我的表单。但是,我似乎无法想象如何将此代码“转换”为简单形式。任何人都知道如何?感谢。

1 个答案:

答案 0 :(得分:2)

这样的事情可以解决问题:

如果您有多对多关系,您可以先尝试默认操作。

<%= f.association :tags %>

如果默认设置不能解决,您可以进行明确的收集:

<%= 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 方法,则不必传递标签方法的名称。 标记#id 用作默认值方法。如果您想要其他值,请指定如下方法:value_method: :something_else

请参阅simple_form Usage section(介绍,收藏和关联)。