4

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

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

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

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

例如,如果用户选择 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 或会话变量。

提前致谢, 问候

4

2 回答 2

6

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

<%= link_to product.name, product %>

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

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

然后就可以传参数了

<%= link_to product.name, product_path(product, :from => 'whatever', :to => 'whatever') %>
于 2012-06-25T12:20:53.713 回答
3

你能这样试试吗

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

现在您可以根据需要在“param_you_want”中设置值。

但在我的情况下,在其中设置值“你想要的值”

希望你能得到想法

于 2012-06-25T11:59:41.180 回答