簡體   English   中英

在動作之間保存參數

[英]Save parameters between actions Rails

我有一個名為OrdersController的控制器。 和數據庫表“訂單”與有關車間訂單的信息。 在索引頁面(localhost /)中,我必須顯示兩個按鈕:今天的訂單和范圍內的訂單(帶有兩個輸入)。

第一個按鈕應打開一個包含今天創建的訂單列表的頁面(例如,Date.current)。 第二個按鈕應打開一個包含訂單列表的頁面,該頁面是在輸入中指定的日期范圍內創建的。

當我單擊某些訂單時,將為其打開詳細信息頁面。 在這里,我可以編輯一些訂單字段,然后單擊“更新”按鈕(它必須更新@order並重定向到(!)上一頁-如果是今天的訂單,則打開今天的訂單。如果它是日期范圍內的訂單-然后顯示在指定范圍內創建的訂單)。

問題:在動作之間傳遞參數的最佳實踐是什么? 在更新后,我如何對我的“更新”操作說在哪里redirect_to(到今天訂單的頁面或到范圍內訂單的頁面)? 它必須是帶有params [:start_date]的hiiden標記或其他名稱?

“訂單詳細信息”頁面上的“后退”按鈕也是如此。 它必須返回到上一頁(保存為之傳遞的所有參數)。 我在想

link_to 'Back', :back

但是我聽說這不是一個好的解決方案。

謝謝!

我已經在redirect_to而不是link_to使用了它。

:backupdatecreate操作中的一個不錯的選擇,因為重定向是通過GET完成的,所以當您發布到orders或將PUT放置到orders/1我想您會將用戶重定向到orders/neworders/1/edit

但是,由於要重定向到/orders維護搜索頁面, app/views/orders/_form.html.erb在表單塊內的app/views/orders/_form.html.erb ,隱藏字段更有意義:

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

然后在您的orders_controller中進行更新或創建操作:

redirect_to params[:redirect_url]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM