Ich benutze die http://guides.rubyonrails.org/getting_started.html als ein Beispiel, um mir zu helfen, meine eigene Anwendung zu erstellen. Ich erstelle die Blog- und Kommentarmodule ganz gut. Wenn ich den Kommentaren oder Blog-Controllern eine Methode hinzufüge, kann ich keine link_to-Aktion zum Aufruf der neuen Funktion aufrufen. Alles deutet auf ein Problem in den routes.rb hin, aber ich habe die ganze neue Syntax ausprobiert, die ich gesehen habe und nichts funktioniert für mich.Rails 3 wie man eine benutzerdefinierte Methode zum Controller hinzufügt
Was ich versuche, ist eine einfache Ausführungsmethode in der Steuerung zu erstellen, um ein Ruby-Skript auszuführen und die Ausgabe in der Datenbank zu speichern. Alles funktioniert nach dem Tutorial, aber wenn ich versuche, den Kommentar-Controller mit einer benutzerdefinierten Funktion namens execute zu erweitern, kann ich das nicht ausführen.
comments_controller.rb #Same as destroy
def execute
@post = Post.find(params[:post_id])
@comment = @post.comments.find(params[:id])
@comment.destroy
redirect_to post_path(@post)
end
_comment.html.erb
<%= link_to 'Execute Comment', [comment.post, comment],
:method => :execute %>
routes.rb
resources :posts do
resources :comments do
get :execute, :on => :member
end
end
rake routes |grep execute
execute_post_comment GET /posts/:post_id/comments/:id/execute(.:format) {:action=>"execute", :controller=>"comments"}
Error when I click Execute comment link:
No route matches "/posts/3/comments/6"
Danke, ich habe die Schienen gegossen und viel gelernt. Ich war in der Lage, eine neue Funktion zu bekommen, um mit dem Post-Controller zu arbeiten, konnte aber immer noch nicht mit dem Comments-Controller laufen. Ich habe die Frage aktualisiert, um den von mir verwendeten Code einzuschließen. –
Das hat funktioniert, vielen Dank! Du bist großartig. –
Toller Link auch! Das hat gerade jetzt geholfen! – earlonrails