2014-03-28 67 views
0

當我創建一個與職位相關的評論,我收到此錯誤::未定義的方法'許可證」的零:NilClass

我的評論控制器::

class CommentsController < ApplicationController 
    def new 
     @comments = Comment.new 
    end 

    def create 
     @post = Post.find (params[:post_id])  
     @comments = @post.comments.create(params[:comments].permit(:commenter, :body)) 
     redirect_to post_path(@post) 
    end 
end 

//形式您的意見///

<strong>Title:</strong> 
    <%= @post.Title %> 
</p> 

<p> 
    <strong>Text:</strong> 
    <%= @post.Text %> 
</p> 

<%= form_for([@post, @post.comments.build]) do |f| %> 

<p> 
    <%= f.label :commenter %><br /> 
    <%= f.text_field :commenter %> 
    </p> 
    <p> 
    <%= f.label :body %><br /> 
    <%= f.text_area :body %> 
    </p> 
    <p> 
    <%= f.submit %> 
    </p> 
<% end %> 

我在這一行::

@comments = @post.comments.create(params[:comments].permit(:commenter, :body)) 
得到錯誤

請點我在哪裏我錯了..

一個編輯::我實際的錯誤聲明::

NoMethodError在CommentsController#創建

回答

1

正確的語法使用強參數

params.require(:comments).permit(:commenter, :body) 

但我認爲PARAMS將包含commentcomments

所以,你應該用

params.require(:comment).permit(:commenter, :body) 
1

很好,作爲錯誤消息狀態, params[:comments]是零。

您應該使用params.require(:comments).permit(:commenter, :body),這樣如果comments不存在,它將不會再繼續。

另外,提交的實際參數是comment,而不是comments。您可以通過查看日誌中提交的參數來驗證這一點。

+0

感謝名單@sevenseacat ::但是請告訴我我如何得到這個..我是新的軌道.. ps - 它現在的工作.. – user3322822

+0

@ user3322822它作爲入門Rails指南的一部分被覆蓋 - http://guides.rubyonrails.org/getting_started.html#saving-data-in-the-controller – sevenseacat

相關問題