尝试更新记录时未允许的参数

时间:2017-04-21 07:17:43

标签: ruby-on-rails ruby ruby-on-rails-4 rails-activerecord

我有两个模型,ProjectCategoryProjectQuestionProjectCategory可能有很多与之相关的问题,ProjectQuestion只能有一个与之相关的类别。

我有一个表单让用户编辑一个问题,包括与之相关的类别(如果有的话)。但是,当我提交表单时,我收到以下错误:

Unpermitted parameter: project_category_id

但是在ProjectQuestion控制器中我的permit方法配置如下:

params.require(:project_question).permit(:title, :project_category_id)

我无法弄清楚如何让我设置外键。到目前为止我发现的所有SO答案只显示了你在父母方面建立关系的情况,这不是我想要的。

发送到服务器的数据似乎是正确的:

Started PATCH "/admin/questions/2" for ::1 at 2017-04-21 16:45:19 +1000
Processing by AdminController#update_project_question as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"9Abl7Rruj/5LD4/rI/WKlQ8MQ8eY/TMVFUaw53kfFw199xFekfzgyiWZytzsJ5qHU+edNpoqhXG5xWvuzHFP7g==", "project_question"=>{"title"=>"What are the images not telling us testing", "project_category_id"=>"9"}, "commit"=>"Update Project question", "id"=>"2"}

这是在视图中设置字段的方式:

<%= f.label 'Category' %>
<%= f.select :project_category_id, options_for_select(ProjectCategory.all.map{|s|[s.title, s.id]}) %>

这是我的ProjectCategory模型:

class ProjectCategory < ActiveRecord::Base
  belongs_to :entry
  has_many :project_questions

  validates_presence_of :title

end

这是我的ProjectQuestion模型:

class ProjectQuestion < ActiveRecord::Base
  has_many :entry_project_questions
  validates_presence_of :title, :project_category_id
  belongs_to :project_category

end

这是我的第一个Ruby项目,所以我还在学习,但我一直无法弄清楚我缺少什么才能让它正常工作。

1 个答案:

答案 0 :(得分:1)

你好@Christopher Muller,

您正在通过AdminController处理请求,而您已在ProjectQuestion中放置了许可。请将代码添加到正在进行处理的AdminController中。

感谢。