无法克服ActiveModel :: ForbiddenAttributesError

时间:2014-08-18 21:19:57

标签: ruby-on-rails-4

您好我正在尝试学习Rails并且我遵循本教程 - > http://vimeo.com/10732081解释了如何构建博客页面。我使用Rails 4.1和PostsController是:

class PostsController < ApplicationController
  respond_to :html
  def index
    @posts = Post.order("created_at desc")
    respond_with @posts
  end

  def create
    Post.create(params[:post])
    redirect_to posts_path
  end

end

当我使用此.erb页面创建新帖子时:

<h1>Create a new post</h1>
<%= form_for Post.new do |form| %>
<%= form.text_field :title %>
<%= form.text_area :body %>
<%= form.submit %>
<% end %>  

它会抛出ActiveModel :: ForbiddenAttributesError

谷歌搜索后(包括Stackoverflow中的页面)我发现添加类似

的内容
params.permit post: [:title, :body]

是必要的,但不确定在何处放置此方法以及应使用哪些参数。看起来所有的答案都假设我已经知道Ruby和Rails,但我不知道,我是新手。我需要帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

试试这个:

# app/controllers/posts_controller.rb
def create
  Post.create(post_params)
  redirect_to posts_path
end

private

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