ActionController的:: ParameterMissing
我创建了一个具有personsController
类的应用程序,具有动作节目和新节目。 我也用这种方式创建了Person
模型:
rails generate model Person name:string surname:string partner:references
partner
字段应该引用另一个人。 在新操作中,我创建了一个表单以将新人插入数据库:
这是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中的NameError #create
未初始化的常数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而不是外键的伙伴
<%= f.label :partner %> <%= f.number_field :partner_id, value: 0 %>
要求person
:
params.require(:person).permit(:partner, :name, :surname)