在操作Rails之间保存参数

时间:2013-12-02 17:42:22

标签: ruby-on-rails parameters persistence

我有一个名为OrdersController的控制器。和db表“订单”,包含有关车间订单的信息。 在索引页面(localhost /)中,我必须显示两个按钮:今日订单和范围内的订单(带两个输入)。

第一个按钮应该打开一个包含今天创建的订单列表的页面(例如Date.current)。 第二个按钮应该打开一个页面,其中包含在日期范围内创建的订单列表,在输入中指定。

当我点击某个订单时,会打开详细信息页面。在那里,我可以编辑一些订单字段,然后点击“更新”按钮(必须更新 @order 并重定向到(!)上一页 - 如果是今天订单,则打开今日订单。如果是是日期范围内的订单 - 然后显示在指定范围内创建的订单。

问题:在动作之间传递参数的最佳做法是什么?在更新后,如何对我的“更新”操作说明redirect_to(到今天的订单页面或订单范围内的页面)?它必须是带有params [:start_date]或其他东西的hiiden标签?

订单详情页面上的“后退”按钮也是如此。它必须返回上一页(保存所有传递的参数)。我在考虑

link_to 'Back', :back

但我听说这不是一个好的解决方案。

THX!

1 个答案:

答案 0 :(得分:1)

我在redirect_to中使用过它,而不是link_to

:backupdatecreate个动作中的一个不错的选择,因为重定向是通过GET完成的,所以当你POST到orders或PUT到{{1我想你会将用户重定向到orders/1orders/new

但是,由于您希望重定向到orders/1/edit维护搜索页面,因此隐藏字段更有意义,位于表单块内的/orders中:

app/views/orders/_form.html.erb

然后在您的orders_controller中更新或创建操作:

<%= hidden_field_tag :redirect_url, request.referrer %>