【发布时间】:2017-04-21 07:17:43
【问题描述】:
我有两个模型,ProjectCategory 和 ProjectQuestion。 ProjectCategory 可以有很多相关的问题,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