用于#<postscontroller:0x0000010b791560>的未定义方法`find_post'

时间:2016-06-14 14:50:21

标签: ruby-on-rails

这是我陷入我的代码的地方:

class PostsController < ApplicationController
  before_action :find_post, only: [:show, :edit, :update, :destroy]

  def index
  end

  def show
  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 edit
  end

  def update
    if @post.update
      redirect_to @post
    else
      render 'edit'
    end
  end

  def destroy
    @post.destroy
    redirect_to root_path
  end

  private

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

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

end

我定义了post_find,但是当我运行代码时我仍然收到错误抱歉我发布的帖子中的错误。我希望能够在论坛上发帖并进行编辑或删除帖子。

2 个答案:

答案 0 :(得分:5)

应该是

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

您将回调定义为:find_post,但您的方法定义为post_find

答案 1 :(得分:0)

应该是:post_find喜欢

before_action :post_find, only: [:show, :edit, :update, :destroy]

因为您的方法是post_find

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

我认为帮助你