Мне хорошо известно назначение атрибутов данных параметрам в традиционном блоке выбора с использованием Simple Form, но когда дело доходит до сгруппированных параметров, я, похоже, сталкиваюсь с некоторыми проблемами. Я нашел post, который объясняет, как сделать это SANS простой формы:Присвоение атрибутов параметрам в group_select с использованием простой формы
<%= f.select :game_id, grouped_options_for_select(@consoles.map{ |console| [console.name, console.games.map{ |g| [g.title, g.id, {'data-game'=> g.title.downcase.gsub(/\s+/, "-")}] } ] }, selected_key = f.object.game_id) %>
Когда я пытаюсь перевести это в соответствующий синтаксис я получаю эту ошибку:
undefined method 'games' for ["PS3", []]:Array
<%= f.input :game_id, as: :grouped_select, collection: @consoles.map{ |console| [console.name, console.games.map{ |g| [g.title, g.id, {'data-game'=> g.title.downcase.gsub(/\s+/, "-")}] } ] }, group_method: :games, include_blank: "Select a game", input_html: {class: "boost__game"} %>
Модели
class Game < ActiveRecord::Base
# attributes: title
has_and_belongs_to_many :consoles
end
class Console < ActiveRecord::Base
# attributes: name
has_and_belongs_to_many :games
end
Какая проблема?
консольная массив? –
Его модель находится в отношениях 'has_and_belongs_to_many' с моделью' Game'. –
Я думаю, что ошибка где-то в другом месте ... –