В моей форме у меня есть f.select
с multiple: true
, но select
не работает, если он не в жестком коде in.
Это моя форма в new
виде:
= f.select :os, get_uniq_objects(:os), {}, {multiple: true }
Мой помощник
def get_uniq_objects(obj)
somethings.pluck(obj).uniq
end
Мой контроллер
def campaign_params
params.require(:something).permit(os:[])
end
В представлении new
при выборе ОС результат будет сохранен как ['Linux', 'Windows']
, поэтому в моем представлении edit
я делаю, как показано ниже , но ничего не выбирается:
= f.select :os, options_for_select(get_uniq_objects(:os), @something.os), {}, { multiple: true}
НО если я жестко закодировал их, как показано ниже, все работает нормально. Я даже дважды проверил, что такое @something.os
, добавив его в мое представление, и оно точно так же, как код в жестком коде.
= f.select :os, options_for_select(get_uniq_objects(:os), ['Linux', 'Windows']), {}, { multiple: true}
Я не уверен, что я здесь сделал неправильно. Любая помощь приветствуется и спасибо заранее!