Rufen Sie eine benutzerdefinierte controller-action-Methode von einem 'link_to'
Ich bin mit Ruby, Ruby on Rails 3 und ich würde gerne eine action-Methode in meinem controller-Datei, so dass aus meiner Sicht Dateien, die ich verwenden können, so etwas wie die folgenden:
link_to("Delete", posts_path(@post.id), :method => :delete)
Ist, um einen link, so dass ich "direkt" aufrufen und ausführen einer action-Methode in meinem controller.
In dem obigen code, zum Beispiel, ist es möglich, zu nennen, die destroy
Methode hinzufügen :method => :delete
.
- Sie sollten das nicht tun. Ansichten aufgerufen werden, indem Controller, nicht die andere Weise herum. Sie tun, was Sie wollen, bricht das MVC-ness der Anwendung und schafft eine Abhängigkeit vom controller zum view. Sie könnten in der Lage sein, dies zu erreichen mit ein paar ausgefallenen Routen, aber ich weiß nicht, was das würde Aussehen wie aus der Spitze von meinem Kopf.
- Die Frage macht null Sinn für mich. Was da beschrieben wird ist genau das, mvc. Bitte erläutern Sie.
- Dies ist perfekt MVC. Warum ist es nicht MVC und was wäre das MVC-Weg, es zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen, diese.Es funktioniert in meinem Fall.
Ich würde stick durch die Beratung Ihre Kommentare, aber die syntax würde sein:
Ändern
posts_path
zupost_path
:oder, noch besser,
Auch einen link zu einer anderen Aktion, fügen Sie eine route für Sie,
z.B.
resources :posts, :member => [:mycustomaction]
und in Ihrem Blick<%= link_to("foobar", mycustomaction_post_path(post) %>
button_to
für die Kompatibilität