NameController #create中的ActionController :: ParameterMissing

时间:2014-07-09 11:18:38

标签: ruby-on-rails-4

您好我在尝试通过new.html使用form_for将我的姓名添加到我的index.html时遇到问题,请仔细查看下面的代码并更正我的代码

我的控制器

def new      @post = Name.new
    端

def create
    @post = Name.new(post_params)
 if @post.save
redirect_to names_path, notice: "your name was added"
 else
render "new"
 end

end

def post_param

  params.require(:post).permit(:name)
 end

我的new.html.erb

<h1> Add your name </h1>
<%= form_for @post do |f| %>   
<%= f.label :name %>     
<%= f.text_field :name %>    
<%= f.submit "Add your name" %>     
<% end %>    

当我点击f.submit(htlm中出现的按钮)时,我在这个较低的部分遇到了麻烦,它会把错误抛给我。

1 个答案:

答案 0 :(得分:1)

您的newcreate方法应如下所示

def new 
  @post = Post.new #here
end

def create
 @post = Post.new(post_params) #here
 if @post.save
   redirect_to names_path, notice: "your name was added"
 else
   render "new"
 end
end

您对attribute namesmodel name的使用感到困惑。您应该看看这些 Guides 。它应该对您有帮助。

<强>更新

正如您所说,您创建了 Name 模型,您不应该创建 attribute ,这与您的<强> model name

<强>解决方案

attribute namemodel name更改为其他有意义的名称。