0
ActiveModel::ForbiddenAttributesError
Extracted source (around line #3):

def create
  @post = Post.find(params[:post_id])
  @comment = @post.comments.create!(params[:comment])
  redirect_to @post
end

Rails.root: C:/Users/ManU/Desktop/quick_blog  
Application Trace | Framework Trace | Full Trace

app/controllers/comments_controller.rb:4:in `create'

このエラーに対処するために私がすべきこと.....

4

3 に答える 3

1

これがうまくいくことを願っています!(同じエラーが発生し、次の変更が機能しました)

def create
    @post = Post.find(params[:post_id])
    @comment = @post.comments.create(params[:comment].permit(:commenter, :body))
redirect_to post_path(@post)
end
于 2013-11-08T19:39:21.647 に答える
1

ForbiddenAttributesError は強力なパラメーターに関連しています

Rails3 アプリに gem をインストールしたか、質問のタグを付け忘れて、Gem がデフォルトで付属する Rails4 を使用しています。

いずれにせよ、強力なパラメーターを使用すると、パラメーター チェックはモデルを離れてコントローラーに渡されます。

以前attr_accessible :foo, :barはモデルに次のようなものが必要でしたが、今では次のようなものが必要です

def comment_params
  params.permit(:foo, :bar)
end

コントローラーで、次に呼び出しますComment.create!(comment_params)

于 2013-11-08T13:36:12.907 に答える