【问题标题】:Add parameter to controller向控制器添加参数
【发布时间】:2012-03-09 06:46:27
【问题描述】:

我有 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

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

他们有两个问题:

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

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

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

【问题讨论】:

    标签: ruby-on-rails ruby haml


    【解决方案1】:

    您可以尝试添加一个按钮(尝试使用提交)并将“名称”属性设置为“质量”之类的内容并设置值参数。将这些按钮中的两个设置为不同的值,在 HTTP 中,只有被点击的那个会作为质量传递。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-06
        • 2016-09-03
        • 1970-01-01
        • 2016-08-01
        • 1970-01-01
        相关资源
        最近更新 更多