【问题标题】:Ruby on Rails - Saving with MultiselectRuby on Rails - 使用多选保存
【发布时间】:2015-01-21 18:49:12
【问题描述】:

我正在尝试通过编写一个简单的程序来学习 RoR,但在从多选中保存表单数据时遇到了困难。有人可以帮我理解 Rails 中的多选选项吗?我有一个包含多种不同棋盘游戏的表格。我想将选定的游戏 ID 保存为“2,3”的表格。但是,目前它保存为:game_id: "[\"\", \"2\", \"3\"]"

我在保存到数据库之前尝试使用连接:

self.game_id = game_id.join(', ')

但得到以下错误:NoMethodError (undefined method `join' for "[\"\", \"3\", \"4\"]":String):

我将参数设置为:

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}) %> 

从错误来看,它似乎是作为字符串返回的?另外,我不确定为什么它在数组中有初始空白。

感谢您的帮助!

【问题讨论】:

    标签: ruby-on-rails select


    【解决方案1】:

    我认为您必须从数组中删除空白值。

    self.game_id = game_id.reject(&:empty?).map { |t| t }.join(", ")
    

    这可能对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-23
      • 1970-01-01
      • 2020-11-28
      • 2020-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多