Я использую Simple Forms, и у меня есть следующая многозадачная форма, работающая правильно как для новых, так и для редактирования:
<%= f.association :attitudes, as: :select %>
Я могу сделать множественный выбор и обновить БД - когда я перейду к возрасту редактирования - я вижу выбор, которые находятся в БД и имеют возможность изменять и обновлять БД ---
Я теперь пытаюсь использовать http://rvera.github.io/image-picker/ - я не мог использовать вышеуказанный код, потому что, насколько я понимаю (поле выбора настраиваемой ассоциации Rails Simple Form), Simple Form Collection не поддерживает дополнительные атрибуты
После долгих проб и усилий - теперь у меня это работает для представления NEW - благодаря этому сообщению: http://www.redguava.com.au/2011/03/rails-3-select-list-items-with -custom-attributes/:
NEW VIEW
<%= f.association :attitudes do %>
<%= select_tag("task[attitude_ids][]", options_from_collection_for_select_with_attributes(Attitude.all, 'id', 'name', 'data-img-src', 'img_url', @task.attitudes.collect), {:multiple=>true, :size=>5, :class=>"image-picker show-html"}) %>
<% end %>
APPLICATION_HELPER.RB
def options_from_collection_for_select_with_attributes(collection, value_method, text_method, attr_name, attr_field, selected = nil)
options = collection.map do |element|
[element.send(text_method), element.send(value_method), attr_name => element.send(attr_field)]
end
selected, disabled = extract_selected_and_disabled(selected)
select_deselect = {}
select_deselect[:selected] = extract_values_from_collection(collection, value_method, selected)
select_deselect[:disabled] = extract_values_from_collection(collection, value_method, disabled)
options_for_select(options, select_deselect)
end
Моя проблема заключается в том, что когда я перехожу к просмотру редактирования, мультивыбор не отображает элементы, находящиеся в БД, - я думаю, что это может быть что-то простое, что я пропускаю, и в какой-то момент он был выбран = nil - но изменение, которое ничего не делало ---
Любое руководство будет высоко оценено.
Для всех, у кого может быть подобная проблема (и, надеюсь, это сэкономит вам часы исследований и проб/ошибок) - мне удалось преодолеть проблему с помощью следующего кода:
<%= f.input :attitude do %>
<%= f.select :attitude_ids, Attitude.all.map { |f| [f.name, f.id, { 'data-img-src' => f.img_url} ] }, { :prompt => "Please select"}, { :multiple => true, :size => 5, :class=>"image-picker show-html" } %>
<% end %>
image picker rails
? Я использовал драгоценный камень и сделал свой выбор именно так, как отображается ваш выбор (за исключением блока, потому что я не использую simple_form). Но изображения не отображаются, и я получаю окно выбора по умолчанию для рельсов.