select_tag
принимает в качестве строки второго параметра, который содержит параметры в виде строки. Rails предоставляет некоторые вспомогательные методы, которые полезны для генерации этих <option>
тегов
options_from_collection_for_select , options_for_select
Если вы проверяете с разработчиком своего браузера Инструменты html код тега <select>
вы увидите что-то вроде этого:
<select name="colors[]" id="colors" multiple="multiple">
#<Responsibility::ActiveRecord_Relation:0x00007f3f72cc7eb0>
</select>
Это потому, что select_tag вызывает to_s
метод @responsibilities
collection.
правильный способ создания select_tag
будет выглядеть примерно так:
<%= select_tag "colors", options_from_collection_for_select(@responsibilities, :id, :name) , multiple: true %>
Существует другой способ создания поля выбора с использованием метода FormBuilder collection_select . Это может выглядеть примерно так:
<div>
<%= form.label :responsibility %>
<%= form.collection_select :responsibility, @responsibilities, :id, :name, prompt: true %>
</div>
Надеюсь, этот ответ будет полезен.