2013-09-08 22 views
13

Ich bin ein bisschen verloren. Ich bekomme den Rails 4 Fehler: ActiveModel :: ForbiddenAttributesError. Ich verstehe, dass dies bedeutet, dass ich Gegenstände passieren lassen muss, was ich getan habe, aber ich muss etwas verpassen. Controller-ActiveModel :: ForbiddenAttributesError - Rails 4

Kommentare:

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 

erstellen Kommentare 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 

Was ich hier fehlt? Lass es mich wissen, wenn du irgendeinen anderen Code sehen musst.

Danke!

Antwort

32

Statt

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

Sie

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

Sie haben all die harte Arbeit, ohne die zulässigen Attribute zu verwenden!

+0

Blah! Ich wusste, dass das trivial sein musste. Vielen Dank! –

+1

hat mich auch von Rails 3 überfallen, danke! – Zach

Verwandte Themen