2011-05-25 127 views
0

考慮以下幾點:如何將一個額外的參數傳遞給link_to遠程?

<%= link_to "Add", group_request_path(gr), :confirm => "Are you sure?", :method=> :put, :remote => true %> 

<%= link_to "Ignore", group_request_path(gr), :confirm => "Are you sure?", :method=> :put, :remote => true %> 

如何傳遞的決定PARAM與無論是在以上人民政府的link_to」添加或忽略?有沒有一個選項可以用link_to添加URL參數?我不想使用表單。

+0

GR這裏等於GroupRequest對象 – AnApprentice 2011-05-25 20:58:21

回答

5

*_path幫助程序接受選項散列作爲查詢字符串追加到路徑。

在您的例子,假設group_request_path(gr)輸出類似/group_requests/123,你可以添加一個查詢字符串添加/忽略動作是這樣的:

group_request_path(gr, :action => 'add') # /groups_requests/123?action=add 

group_request_path(gr, :add => 1) # /groups_requests/123?add=1 

但是這可能不是正確的方式去做這件事。它看起來像你應該在你的控制器中有不同的動作,以及特定的路由添加或忽略。你得添加類似以下內容config/routes.rb

put 'group_requests/:id/add' => 'groups_requests#add', :as => :add_group_request 
put 'group_requests/:id/ignore' => 'groups_requests#ignore', :as => :ignore_group_request 

你的鏈接然後成爲

<%= link_to "Add", add_group_request_path(gr), :confirm => "Are you sure?", :method=> :put, :remote => true %> 

<%= link_to "Ignore", ignore_group_request_path(gr), :confirm => "Are you sure?", :method=> :put, :remote => true %> 
+0

你的第一個解決方案很好地適應該法案。謝謝! – AnApprentice 2011-05-25 21:13:35

+0

@ColdTree我必須重申,第一個解決方案絕對不是「鐵軌方式」。您應該在控制器中定義兩個名爲'add'和'ignore'的動作,並通過'/ groups /.../ add'和'/ groups /.../ ignore'路由到它們。 – meagar 2011-05-25 21:17:20

相關問題