Ruby on Rails“SystemStackError Stack level too too”错误

时间:2015-03-13 07:58:33

标签: ruby-on-rails ruby

我是Ruby on Rails的新手,我正在尝试构建一个简单的博客平台,允许使用设计进行用户身份验证。当我填写带有标题和内容字段的帖子表单时,当我按下“创建帖子”按钮时,我会收到错误消息

SystemStackError in PostsController#create stack level too deep

好像我的PostsController中的“创建”动作就是问题源于此的地方。谁能帮我?这就是我的PostsController的外观:

class PostsController < ApplicationController

    before_action :authenticate_user! 

    def index
      @posts = Post.all 
    end 

    def new 
      @post = Post.new
    end 

    def create
      @post = Post.new(params[:post])
    end 

    def show 
      @post = Post.find(params[:id])
    end 

    private 

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


end

1 个答案:

答案 0 :(得分:4)

很简单,你在params方法体内调用params方法(递归) - 繁荣,无限循环。更改自定义params方法的名称:

def create
  @post = Post.new(post_params)
  # etc.
end

# ...

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