Перевод синтаксиса form_for в синтаксис simple_form - PullRequest
0 голосов
/ 12 мая 2018

У меня есть этот код в моей форме рельсов:

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

Этот код работает, но я хочу использовать gem simpleform для редизайна моей формы.Однако я не могу понять, как «перевести» этот код в простую форму.Кто-нибудь есть идеи, как?Спасибо.

1 Ответ

0 голосов
/ 13 мая 2018

Примерно так должно получиться:

Если у вас есть отношение многие ко многим, вы можете сначала попробовать то, что делает значение по умолчанию.

<%= 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 , вам не нужно передавать имя метода метки. Tag # id используется как метод значений по умолчанию. Если вам нужно другое значение, укажите метод следующим образом: value_method: :something_else.

См. Раздел simple_form Usage (вступление, коллекции и ассоциации).

...