Вызовите пользовательский метод действия контроллера из 'link_to' - PullRequest
0 голосов
/ 25 марта 2011

Я использую Ruby on Rails 3 и хотел бы указать метод действия в файле моего контроллера, чтобы в моих файлах просмотра я мог использовать что-то вроде следующего:

link_to("Delete", posts_path(@post.id), :method => :delete)

То есть иметь ссылку, чтобы я мог "напрямую" вызвать и запустить метод действия в моем контроллере.

Например, в приведенном выше коде можно вызвать метод destroy, добавив :method => :delete.

Ответы [ 3 ]

3 голосов
/ 15 октября 2011

Вы можете попробовать это. Это работает в моем случае.

 <%= link_to(t(:delete), :action => 'destroy', :method => :delete, :id => @post.id ) %> 
0 голосов
/ 25 марта 2011

Измените posts_path на post_path:

<%= link_to 'Destroy', post_path(post), :confirm => 'Are you sure?', :method => :delete %>

или, что еще лучше,

<%= link_to 'Destroy', post, :confirm => 'Are you sure?', :method => :delete %>

Кроме того, для ссылки на другое действие добавьте для него маршрут, напримерresources :posts, :member => [:mycustomaction] и по вашему мнению <%= link_to("foobar", mycustomaction_post_path(post) %>

0 голосов
/ 25 марта 2011

Я бы придерживался совета ваших комментариев, но синтаксис был бы:

<%= link_to "Delete", {:action => 'delete', :id => @post.id} %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...