我正在尝试通过编写一个简单的程序来学习RoR,但是我很难从多选中保存表单数据。有人可以帮我理解Rails中的多选项。我有一个表格,有多种不同的棋盘游戏。我想将选定的游戏ID保存为表格“2,3”。但是,目前它将其保存为:game_id:“[\”\“,\”2 \“,\”3 \“]”
我在保存到数据库之前尝试使用连接:
self.game_id = game_id.join(', ')
但是得到以下错误:NoMethodError(未定义的方法`join'代表“[\”\“,\”3 \“,\”4 \“]”:String):
我将params设置为:
def setup_params
params.require(:user).permit(:game_id => [])
end
和视图:
<%= f.label :game_id, "Board Games" %>
<%= f.select(:game_id, @game.map {|g| [g.game_name, g.id]}, {}, {:multiple => true}) %>
从错误中,它似乎以字符串形式返回?另外,我不确定它为什么在数组中有初始空白。
感谢您的帮助!
答案 0 :(得分:0)
我认为你要从数组中删除空白值。
self.game_id = game_id.reject(&:empty?).map { |t| t }.join(", ")
这可能会对你有所帮助!