2011-03-25 71 views
0

我正在使用Ruby on Rails 3,我想在我的控制器文件中聲明一個動作方法,以便在我的視圖文件中我可以使用類似如下的東西:調用一個'link_to'的自定義控制器動作方法

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

也就是說,有一個鏈接,以便我可以「直接」調用並在我的控制器中運行一個操作方法。

在上面的代碼中,例如,可以調用destroy方法添加:method => :delete

+2

你不應該這樣做。視圖被控制器調用,而不是相反。做你打算打破你的應用程序的MVC性,並在視圖內創建一個依賴控制器。你可以用一些奇特的線路來完成這個任務,但我不知道那將會是什麼樣子。 – 2011-03-25 17:17:14

+0

這個問題對我來說毫無意義。正在描述的內容正是mvc。請詳細說明。 – mark 2011-03-25 17:51:48

+1

這是完美的MVC。爲什麼它不是MVC,MVC的做法是什麼? – freedrull 2011-05-17 17:00:38

回答

3

你可以試試這個。它適用於我的情況。

<%= link_to(t(:delete), :action => 'destroy', :method => :delete, :id => @post.id) %> 
0

我會通過你的意見周密堅持,但語法是:

<%= link_to "Delete", {:action => 'delete', :id => @post.id} %> 
0

變化posts_pathpost_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

對不起,我以前錯誤的答案... Rails3正確處理link_to在這裏做一個POST,當你使用restful路線和rails.js。使用'button_to'來兼容性可能還有一些好處 – 2011-03-25 18:42:09

相關問題