2012-03-09 69 views
1

我有HAML模板(實體\ index.html.haml),其中有:添加參數到控制器

的form_tag

= form_tag intities_path, :method => :get do 
Include: 
- @all_numbers.each do |number| 
    = check_box_tag "numbers[#{number}]", "yes", @checked_numbers.has_key?(number) 
= submit_tag 'Refresh' 

正如你看到的,如果用戶按 「刷新」 按鈕,所有選中複選框將自動作爲散列傳遞給控制器​​。

但我需要在我的頁面上有兩個額外的超鏈接。像這樣:

%a(href="/entities/?quality=better") Make better 
%a(href="/entities/?quality=best") Make best 

我使用它們傳遞給控制器​​一個額外的參數 - 質量。

有兩個問題與他們:

  • 如果我點擊超鏈接,我的代碼將不是數字參數傳遞給控制器​​。
  • 如果我點擊刷新按鈕,我的代碼不會將當前質量參數傳遞給控制器​​。

我該如何修改我的代碼,所以當我點擊超鏈接或按鈕控制器獲取所有參數:質量和數字?

或者我可以在另一方面問我的問題:我有一些參數設置的頁面。我如何更改其中一個參數並刷新同一頁面?

回答

0

我已經找到了自己的答案:hidden_field_tag傳遞數據提交表單和link_to傳遞鏈接點擊參數。

0

您可以嘗試添加一個按鈕(通過提交嘗試此操作)並將「name」屬性設置爲「quality」之類的屬性並設置value參數。使這些按鈕中的兩個具有不同的值,並且在HTTP中,只有被粘住的按鈕纔會作爲質量傳遞。