Rails以表格形式访问序列化数组

时间:2013-12-05 18:15:01

标签: ruby-on-rails activerecord

我有以下课程:

class Question < ActiveRecord::Base
  serialize :choices
end

我希望我的问题有一组用户可以选择的选项,我将它们存储在问题记录中以避免第二次数据库查询。我正在尝试设置我的表单,以便用户可以编辑每个选项的文本。这是我用于输入的标签:

<input name="question[choices][]" type="text" />

我的许可证功能是:

def question_params
  params.require(:question).permit(:category_id, :content, :choices, :answer_id)
end

我的选择数组未设置。我在这里做错了什么?

2 个答案:

答案 0 :(得分:3)

通过引入强参数,不再接受任意非标量值作为输入值。但是,如果要传递一组标量,可以在permit语句中声明,如下所示:

params.require(:question).permit(:category_id, :content, :choices => [], :answer_id)

然而,这可能是一个难以检测的问题,因为在某些情况下可以简单地忽略输入值而没有错误(具体而言我不记得这一点)。

这将在how to permit an array with strong parameters

中进一步讨论

答案 1 :(得分:0)

请尝试以下..(控制器代码?)

class Question < ActiveRecord::Base
  serialize :choices,Array
end