在操作Rails之间保存参数



我有一个控制器,名为OrdersController。以及数据库表"订单",其中包含有关商店订单的信息。在索引页面(localhost/)中,我必须显示两个按钮:今天订单和范围内订单(有两个输入)。

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

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

问题是:在动作之间传递参数的最佳实践是什么?我如何对我的"更新"操作说更新后重定向到哪里(到今天有订单的页面或到范围内有订单的网页)?它必须是一个带有params[:start_date]的hiiden标记还是其他什么?

订单详细信息页面上的"返回"按钮也是如此。它必须返回到上一页(保存传递的所有参数)。我在想

link_to 'Back', :back

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

Thx!

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

:backupdatecreate操作中是一个很好的选项,因为重定向是通过GET完成的,所以当您POST到orders或PUT到orders/1时,我想您会将用户重定向到orders/neworders/1/edit

但是,当你想重定向到/orders来维护你的搜索页面时,你的隐藏字段更有意义,在表单块内的app/views/orders/_form.html.erb中:

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

然后在您的订单中_控制器在更新或创建操作:

redirect_to params[:redirect_url]

最新更新