[英]ActionController::ParameterMissing with custom route
[英]ActionController::ParameterMissing
我已经制作了一个具有personsController
类的应用程序,其中包含动作显示和新功能。 我还通过以下方式创建了Person
模型:
rails generate model Person name:string surname:string partner:references
partner
字段应引用其他人。 在新动作中,我创建了一个表单,用于将新人员插入数据库:
<%= form_for :person , url: persons_path do |f| %>
<p>
<%= f.label :name %>
<%= f.text_field :name %>
</p>
<p>
<%= f.label :surname %>
<%= f.text_field :surname %>
</p>
<p>
<%= f.label :partner %>
<%= f.number_field :partner , value: 0 %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
这是personsController
方法创建的:
def create
@person= Person.new(post_params)
@Person.save
redirect_to @person
private
def post_params
params.require(:post).permit(:partner,:name,:surname);
end
问题是提交表单时出现错误:
更新资料
我将说明更改为:
params.require(:person).permit(:partner,:name,:surname);
但是我仍然得到一个错误:
PersonsController#create中的NameError
未初始化的常量Person :: Partner
人物模型:
class Person < ActiveRecord::Base
belongs_to :partner
end
这是这里的问题:
来自您模型的post
不是已定义的属性
所以改变了这个:
def post_params
params.require(:post).permit(:partner,:name,:surname);
end
至
def post_params
params.require(:person).permit(:partner_id,:name,:surname)
end
使用partner_id代替partner作为您的外键
<p>
<%= f.label :partner %>
<%= f.number_field :partner_id, value: 0 %>
</p>
需要person
:
params.require(:person).permit(:partner, :name, :surname)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.