Ruby on Rails - 将值传递给link_to



我是RoR初学者,正在使用Rails 3.2.3。

我的页面上有一个搜索表单,它执行 get 请求并正确过滤结果。

我想添加按日期搜索产品的可能性。我插入了一个date_select,并且能够选择日期,当搜索后页面刷新时,所选日期仍然存在于date_select上,因为我能够通过params获得它们。

但是,我的问题是,当页面呈现产品时,它们的显示操作link_to。我的目标是还将选择在该link_to上执行搜索的日期与 url 一起传递。

例如,如果用户选择日期 20-06-2012 到 25-06-2012,则它仅显示在该时间范围内插入的产品(所有这些参数都在 url 上)

但是显示每个显示产品的操作的链接仅为:

link_to <%= link_to product.name, product%>

渲染

http://localhost:3000/products/24(波尔示例)

我想要渲染/显示的内容是这样的:

http://localhost:3000/products/24?from=20-06-2012&to=25-06-2012

执行搜索的选定日期目前不存储在数据库中,但我需要从后一页上的 URL 获取它们,因此,在用户填写表单之前,需要通过 2 个不同的页面保留这两个日期,然后将这些日期插入数据库中。

对此有什么提示吗?我已经搜索过,但我发现的只是关于如何传递模型中存在的变量,我不想使用 cookie 或会话变量。

提前感谢,问候

如果要将任意参数传递给以下调用

<%= link_to product.name, product %>

您需要显式调用 path 方法,而不是使用隐式版本。上面的一行相当于

<%= link_to product.name, product_path(product) %>

然后你可以传递参数

<%= link_to product.name, product_path(product, :from => 'whatever', :to => 'whatever') %>

你能这样试试吗

link_to <%= link_to product.name, product, :param_you_want => "value you want" %>

现在,您可以根据需要在"param_you_want"中设置值。

但在我的情况下,在其中设置值"您想要的值"

希望你能得到想法

最新更新