Ruby on Rails“SystemStackError 堆栈级别太深”错误

Nda*_*ior 0 ruby ruby-on-rails

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

SystemStackError in PostsController#create stack level too deep
Run Code Online (Sandbox Code Playgroud)

我的 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
Run Code Online (Sandbox Code Playgroud)

Mar*_*pka 5

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

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

# ...

def post_params
  params.require(:post).permit(:title, :content)
end
Run Code Online (Sandbox Code Playgroud)