Я начал играть с Rails 4 прошлой ночью. И я делаю простое приложение типа блога, чтобы ознакомиться с некоторыми изменениями. У меня есть сообщения, работающие с скаффолдингом по умолчанию.
Я решил работать над добавлением комментариев без создания лесов, и я получаю эту ошибку, когда пытаюсь сохранить комментарий к сообщению:
ActiveModel::ForbiddenAttributesError in CommentsController#create
Запрос параметров на странице ошибки:
{"utf8"=>"✓",
"authenticity_token"=>"jkald9....",
"comment"=>{"commenter"=>"Sam",
"body"=>"I love this post!"},
"commit"=>"Create Comment",
"post_id"=>"1"}
Вот действие создания контроллера комментариев:
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 изменилось что-то еще, что я упустил?