昨夜、Rails 4 で遊び始めました。そして、いくつかの変更に慣れるために、簡単なブログ タイプのアプリを作成しています。デフォルトの足場で作業する投稿があります。
スキャフォールディングなしでコメントを追加することにしました。投稿にコメントを保存しようとすると、このエラーが発生します。
ActiveModel::ForbiddenAttributesError in CommentsController#create
Request Params ON エラー ページ:
{"utf8"=>"✓",
"authenticity_token"=>"jkald9....",
"comment"=>{"commenter"=>"Sam",
"body"=>"I love this post!"},
"commit"=>"Create Comment",
"post_id"=>"1"}
コメント コントローラーの create アクションは次のとおりです。
class CommentsController < ApplicationController
def create
@post = post.find(params[:post_id])
@comment = @post.comments.create(params[:comment])
redirect_to post_path(@post)
end
private
def comment_params
params.require(:comment).permit(:commenter, :body, :post_id)
end
end
これが私のコメントの非常に基本的な移行です。
class CreateComments < ActiveRecord::Migration
def change
create_table :comments do |t|
t.string :commenter
t.text :body
t.references :post, index: true
t.timestamps
end
end
end
強く型付けされたパラメーターの何が間違っていますか? それとも、Rails 4 で変更されたもので、私が見逃しているものがあるのでしょうか?