【问题标题】:Unpermitted parameter when trying to update record尝试更新记录时不允许的参数
【发布时间】:2017-04-21 07:17:43
【问题描述】:

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

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

Unpermitted parameter: project_category_id

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

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 项目,所以我仍在学习,但我一直无法弄清楚我缺少什么才能让它正常工作。

【问题讨论】:

  • 看起来你在更新模型时没有使用强参数
  • 能否请教您要更新的控制器方法以及强参数方法

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


【解决方案1】:

你好@克里斯托弗·穆勒,

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

谢谢。

【讨论】:

  • 谢谢,这解决了问题!我很感激帮助。现在我读了它听起来很明显。
猜你喜欢
  • 1970-01-01
  • 2010-10-30
  • 1970-01-01
  • 1970-01-01
  • 2022-01-27
  • 1970-01-01
  • 1970-01-01
  • 2022-06-10
  • 2015-04-24
相关资源
最近更新 更多