2016-06-14 46 views
-3

這是我被困在我的代碼:未定義的方法`find_post」爲#<PostsController:0x0000010b791560>

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但我仍然得到錯誤,當我運行代碼抱歉的錯誤發佈我是新的軌道。我希望能夠在論壇發帖並進行修改或刪除帖子。

+0

你能解釋你的應用程序的上下文並添加錯誤嗎? –

+0

你定義了一個方法post_find,但試圖調用find_post – pshoukry

回答

5

應該

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

你定義你的回調爲:find_post,但你的方法定義是post_find

+0

謝謝你是正確的 – etnuh

0

應該:post_find

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

因爲你的方法是post_find

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

我認爲幫你

+0

是的,我試過了,它工作 – etnuh

相關問題