2013-09-08 5 views
13

Я немного потерян. Я получаю ошибку Rails 4: ActiveModel :: ForbiddenAttributesError. Я понимаю, что это означает, что мне нужно разрешить передачу предметов, что я сделал, но я должен что-то упустить.ActiveModel :: ForbiddenAttributesError - Rails 4

Комментарии Контроллер:

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

    private 
     # Never trust parameters from the scary internet, only allow the white list through. 
     def comment_params 
      params.require(:comment).permit(:post_id, :comment, :body) 
     end 

end 

Создание Комментарии Migration

class CreateComments < ActiveRecord::Migration 
    def change 
    create_table :comments do |t| 
     t.references :post 
     t.text :body 

     t.timestamps 
    end 
    end 

    def self.down 
    drop_table :comments 
    end 
end 

Что я здесь отсутствует? Дайте мне знать, если вам нужно увидеть какой-либо другой код.

Спасибо!

ответ

32

Вместо

@comment = @post.comments.create!(params[:comment]) 

вы хотите

@comment = @post.comments.create!(comment_params) 

Вы сделали всю тяжелую работу без использования разрешенных атрибутов!

+0

Blah! Я знал, что это должно быть тривиально. Благодаря! –

+1

Погонял меня тоже из Rails 3, спасибо! – Zach

Смежные вопросы