我正在使用Ruby on Rails 3,我想在我的控制器文件中聲明一個動作方法,以便在我的視圖文件中我可以使用類似如下的東西:調用一個'link_to'的自定義控制器動作方法
link_to("Delete", posts_path(@post.id), :method => :delete)
也就是說,有一個鏈接,以便我可以「直接」調用並在我的控制器中運行一個操作方法。
在上面的代碼中,例如,可以調用destroy
方法添加:method => :delete
。
我正在使用Ruby on Rails 3,我想在我的控制器文件中聲明一個動作方法,以便在我的視圖文件中我可以使用類似如下的東西:調用一個'link_to'的自定義控制器動作方法
link_to("Delete", posts_path(@post.id), :method => :delete)
也就是說,有一個鏈接,以便我可以「直接」調用並在我的控制器中運行一個操作方法。
在上面的代碼中,例如,可以調用destroy
方法添加:method => :delete
。
你可以試試這個。它適用於我的情況。
<%= link_to(t(:delete), :action => 'destroy', :method => :delete, :id => @post.id) %>
我會通過你的意見周密堅持,但語法是:
<%= link_to "Delete", {:action => 'delete', :id => @post.id} %>
變化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) %>
對不起,我以前錯誤的答案... Rails3正確處理link_to在這裏做一個POST,當你使用restful路線和rails.js。使用'button_to'來兼容性可能還有一些好處 – 2011-03-25 18:42:09
你不應該這樣做。視圖被控制器調用,而不是相反。做你打算打破你的應用程序的MVC性,並在視圖內創建一個依賴控制器。你可以用一些奇特的線路來完成這個任務,但我不知道那將會是什麼樣子。 – 2011-03-25 17:17:14
這個問題對我來說毫無意義。正在描述的內容正是mvc。請詳細說明。 – mark 2011-03-25 17:51:48
這是完美的MVC。爲什麼它不是MVC,MVC的做法是什麼? – freedrull 2011-05-17 17:00:38