繁体   English   中英

ActionController :: ParameterMissing

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM