2013-09-08 3 views
13

Sono un po 'perso. Ho ottenuto l'errore Rails 4: ActiveModel :: ForbiddenAttributesError. Capisco che questo significa che devo consentire il passaggio degli articoli, cosa che ho fatto, ma mi manca qualcosa.ActiveModel :: ForbiddenAttributesError - Rails 4

Commenti Controller:

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 

Creare Commenti migrazione

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 

Che cosa mi manca qui? Fammi sapere se hai bisogno di vedere qualsiasi altro codice.

Grazie!

risposta

32

Invece di

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

si desidera

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

Hai fatto tutto il duro lavoro senza utilizzare gli attributi consentiti!

+0

Blah! Sapevo che doveva essere banale. Grazie! –

+1

Mi ha fatto inciampare anche da Rails 3, grazie! – Zach