2017-09-24 1 views
1

Je reçois des erreurs d'attributs interdits même si j'ai utilisé des paramètres forts dans Rails. J'ai deux modèles: Posts et catégories. Voici mon post contrôleur: classe PostsController < ApplicationController def index @ messages = Post.all finForbiddenAttributesError dans Rails 5

def new 
    @post=Post.new 
    @category=Category.all 
end 

def create 
    @post = Post.new(params[:post]) 
    if @post.save 
     redirect_to posts_path,:notice=>"Post saved" 
    else 
     render "new" 
    end 
end 

def allowed_params 
    params.require(:post).permit(:title, :body, :category_id) 
end 

fin

Et voici mon avis pour les messages/nouvelle:

<%= form_for @post do |f| %> 
    <p> 
     <%= f.label :title %></br> 
     <%= f.text_field :title%><br/> 
    </p> 
    <p> 
     <%= f.label :body %></br> 
     <%= f.text_area :body%><br/> 
    </p> 
    <p> 
     <%= f.select :category_id, Category.all.collect{|x| [x.name,x.id]},{:include_blank =>"Select one"}%><br/> 
    </p> 
    <p> 
     <%= f.submit "Add Post" %> 
    </p> 
<% end %> 

Mais je reçois toujours Erreur.

Répondre

1

Vous devez utiliser allowed_params au lieu de params[:post]:

@post = Post.new(allowed_params)

+0

Merci. A travaillé pour moi – Rajat