在页面加载时将查询字符串添加到参数 - Rails



我正在研究一些涉及日期范围的功能。在页面上,它是带有一些日期的用户列表,以及start_date和end_date的表单。在页面上,我希望将查询添加到 url,这样用户就不必点击表单上的搜索按钮,结果将加载到页面上。

例如,用户来到该页面,网址看起来像 http://localhost:3000/user_and_project?at_start=2016-02-26&at_end=2016-03-10&commit=Search,结果就像用户自己单击按钮一样。

我发现了一些可以工作的方法,但没有任何东西做到。目前,解决方案是要做

params[:at_start] ||= at_start_helper #method name
params[:at_end] ||= at_end_helper #method name
# or
@date_range = { at_start: at_start_helper, at_end: at_end_helper}
# or
params[:at_start] = at_start_helper
params[:at_end] = at_end_helper

但这实际上并没有将其添加到 URL 中,也不会执行任何操作。 有谁知道我如何实现这一目标?

我似乎无法弄清楚如何做到这一点,所以我想出的解决方案是制作一个自定义somedomain.com/user-hours然后重定向到前面提到的页面,查询字符串准备就绪

def user_and_project
  # original method
end
def user_hours
  redirect_to(controller: 'controller_name', action: 'user_and_project', at_start: at_start_helper, at_end: at_end_helper)
end
# routes
get '/user-hours' => 'controller#action'
如果我

理解正确,您需要提供这样的路径:

project_path(:at_start=>"2016-02-26", :at_end => "2016-03-26")

尝试将这些参数放在链接标签中,以便它也会显示在浏览器 url 上。然后,您可以将这些参数用作表单域的默认值。

喜欢:

<a href="<%= my_path(:at_start=>"2016-02-26", :at_end => "2016-03-26") %>" >Test</a>

最新更新