PostsController中的NameError#为#<postscontroller创建未定义的局部变量或方法`post_params':0x007fd289176ae8>

时间:2016-04-18 13:41:05

标签: ruby-on-rails ruby

帖子控制器

class PostsController < ApplicationController
  def index
  end

  def new 
    @post = Post.new
  end

  def create
    @post = Post.new(post_params)

    if @post.save
     redirect_to @post
    else
     render `new`
   end
 end

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

  private

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

2 个答案:

答案 0 :(得分:2)

此处您的方法名称为post,它采用参数post_params。但是在您的代码中,您打算使用post_params作为方法名称。

所以改变这个:

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

为:

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

答案 1 :(得分:1)

你有一个类型:

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

删除post

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