Rails 5中的ForbiddenAttributesError

时间:2017-09-24 06:03:49

标签: ruby-on-rails ruby-on-rails-4

即使我在Rails中使用了强参数,我也会收到Forbidden Attributes Error。我有两个模型:帖子和类别。 这是我的帖子控制器: class PostsController< ApplicationController的     def指数         @帖= Post.all     端

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 

以下是我对帖子/新内容的看法:

<%= 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 %>

但我仍然收到错误。

1 个答案:

答案 0 :(得分:3)

您需要使用allowed_params代替params[:post]

@post = Post.new(allowed_params)