我是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
答案 0 :(得分:4)
很简单,你在params
方法体内调用params
方法(递归) - 繁荣,无限循环。更改自定义params
方法的名称:
def create
@post = Post.new(post_params)
# etc.
end
# ...
def post_params
params.require(:post).permit(:title, :content)
end