将参数添加到控制器

时间:2012-03-09 06:46:27

标签: ruby-on-rails ruby haml

我有HAML模板(entities \ 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

我正在使用它们向控制器传递一个额外的参数 - 质量。

它们有两个问题:

  • 如果单击超链接,我的代码将不会将numbers-parameter传递给控制器​​。
  • 如果单击“刷新”按钮,我的代码将不会将当前质量参数传递给控制器​​。

如何修改我的代码,以便当我点击超链接或按钮时,控制器会获得所有参数:质量和数字?

或者我可以在另一方面问我的问题 :我的页面包含一些参数。如何更改其中一个参数并刷新同一页面?

2 个答案:

答案 0 :(得分:0)

您可以尝试添加一个按钮(尝试使用提交),并将“name”属性设置为“quality”,并设置value参数。使用不同的值制作其中两个按钮,在HTTP中,只有被克服的按钮将作为质量传递。

答案 1 :(得分:0)

我自己找到了答案:hidden_field_tag传递提交表单上的数据,link_to传递链接点击参数。