Ruby on rails Rails-存储搜索查询/结果
我有一个搜索页面,可以找到候选人。 在此页面中,您可以单击查看以查找有关候选人的更多信息。 在“候选人”视图上,您可以单击“编辑”或执行许多其他操作,这些操作也会返回“候选人”视图 我的问题是,从候选者视图中,我需要添加一个按钮以返回搜索结果。 我最初想用一个JS按钮来处理history-1,但是因为用户可以在视图中执行其他操作,所以这是行不通的 我对rails还是很陌生,所以不确定我的选择。。。我正在考虑对结果进行某种缓存,然后可能是一个隐藏字段来跟踪缓存的位置(不要认为这是最好的解决方案,因为跟踪隐藏值可能会变得有点混乱!)Ruby on rails Rails-存储搜索查询/结果,ruby-on-rails,Ruby On Rails,我有一个搜索页面,可以找到候选人。 在此页面中,您可以单击查看以查找有关候选人的更多信息。 在“候选人”视图上,您可以单击“编辑”或执行许多其他操作,这些操作也会返回“候选人”视图 我的问题是,从候选者视图中,我需要添加一个按钮以返回搜索结果。 我最初想用一个JS按钮来处理history-1,但是因为用户可以在视图中执行其他操作,所以这是行不通的 我对rails还是很陌生,所以不确定我的选择。。。我正在考虑对结果进行某种缓存,然后可能是一个隐藏字段来跟踪缓存的位置(不要认为这是最好的解决方案,因
谢谢,Alex您可以在子页面中包含查询的参数。例如:
/foo/search?q=stuff
显示搜索结果。每个结果都有一个链接,如/foo/:id?q=stuff
。在子页面上,可以使用参数链接回主页
此解决方案不使用任何服务器端状态,这通常被认为是构建web应用程序的更好方法。这不仅意味着您的浏览器在书签、多个选项卡等方面将按预期运行,而且还确保可以使用适当的缓存。此外,它还降低了应用程序的复杂性,使调试和扩展更容易。您可以将搜索结果放入由用户id键入的“搜索结果”表中。然后,当用户点击页面时,始终从该表上的查询加载。您有两个选项: 按照您的建议,缓存结果。这样做的潜在缺点是需要内存,如果添加了新的有效记录,您将看不到它们。您可以将缓存存储在会话中或数据库中(尽管在后一种情况下,您不会获得太多) 我建议只记住最后一个搜索词,要么在会话中,要么使用隐藏字段。当您转到搜索结果页面时,您最终会重新运行查询,但在索引正确的数据库中,这应该不是什么大问题
祝你好运 我可能会使用会话变量来存储此信息 首先,确保发布到搜索页面的表单是GET操作,这样搜索详细信息就会出现在查询字符串中。然后在搜索操作中,您可以获取请求URL并将其存储在会话中:
session[:search_results] = request.url
现在,在结果视图中,您可以执行如下“返回搜索结果”:
link_to "Back to search results", session[:search_results]
如果有人看到这个页面,你需要一个返回到上一页并仍然显示搜索结果的按钮(就像google chrome按钮),只需使用:back
<%= link_to(image_tag("back.svg"), :back, :class => 'back_btn') %>
'back\u btn')%>
我更喜欢这样,它只有一个缺点:它不允许多个搜索会话…顺便说一句:我更喜欢“session[:last_query]=params”作为后过滤器。它还可以保存post请求。请确保重定向时不执行此操作,仅当控制器实际要显示结果时才存储参数。不,不要尝试在会话中缓存结果。真正地不要!谢谢大家的帮助!我将尝试每一种解决方案。