2016-06-14 7 views
-3

Dies ist, wo ich in meinem Code stecken geblieben:nicht definierte Methode `find_post‘ für # <Posts: 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 

I post_find definiert, aber ich bin immer noch Fehler bekommen, wenn ich Code Entschuldigung für die Fehler laufen in Post Ich bin neu in Schienen. Ich möchte in der Lage sein, im Forum zu posten und Bearbeitungen vorzunehmen oder Beiträge zu löschen.

+0

Können Sie den Kontext Ihrer App erklären und die Fehler hinzufügen? –

+0

Sie haben eine Methode post_find definiert, aber versuchen, find_post aufzurufen – pshoukry

Antwort

5

Es sollte

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

werden Sie definiert Ihren Rückruf als :find_post aber Ihre Methodendefinition war post_find

+0

Danke, dass Sie richtig sind – etnuh

0

Es sollte :post_find wie

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

Weil Ihre Methode post_find

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

Ich denke Ihnen helfen

+0

Ja, ich habe es versucht und es hat funktioniert – etnuh

Verwandte Themen