将AJAX搜索表单的结果传递给不同的视图?

时间:2014-04-18 23:15:55

标签: javascript jquery ruby-on-rails ajax ruby-on-rails-4

我几乎总能找到一个搜索堆栈溢出的答案,但经过几个小时后,我空白了。我确信我做的事情本来应该很容易,但对我来说却很复杂。

我有一个带有AJAX搜索,排序和分页的“订单”索引视图。这一切都是基于this screen cast设置的。工作良好。

但是,我希望我的用户能够点击指向另一个页面的链接,该页面将设置为打印搜索结果,而不会导航,分页等。

执行此操作的最佳方法似乎是让新视图执行与索引页上已执行的搜索相同的搜索。

我创建了另一个名为print_list的路径,动作和视图,它与索引页基本相同,但没有分页等。不是很干,但是对于这个模型的目的,它是可以接受的。

问题是如何将AJAX搜索参数传递给其他视图?基本上,我需要将params传递给link_to帮助器。 例如:

<%=link_to "Print List", print_list_orders_path(:cat =>"name ", :search => "er", :range => "Forever") %>

呈现:

<a href="/orders/print_list?cat=name+&amp;range=Forever&amp;search=er">Print List</a>

...并且工作正常,并传递这些参数。我需要的是在进行AJAX调用时动态更新这些参数的方法,并更新索引页面。我可以使用:

编写一个jQuery位

$('.myLink').attr('href','/orders/print_list?cat=name+&amp;range=Forever&amp;search=er">');

并在每次AJAX更新时调用它。(当然我必须为此添加CSS类,显然)但是,这似乎不是最好的方法来做到这一点,硬编码路径和所有。有更多的Railsy方式吗? 我也在想,在我的开发过程中,我不介意能够保存搜索,所以一个方法也可以用来保存搜索以便以后重用获得额外的点数。 谢谢阅读!

1 个答案:

答案 0 :(得分:0)

如果有人遇到此问题 - 解决方案是使用rails会话方法,并将搜索存储在会话中。