[英]Save parameters between actions Rails
我有一個名為OrdersController的控制器。 和數據庫表“訂單”與有關車間訂單的信息。 在索引頁面(localhost /)中,我必須顯示兩個按鈕:今天的訂單和范圍內的訂單(帶有兩個輸入)。
第一個按鈕應打開一個包含今天創建的訂單列表的頁面(例如,Date.current)。 第二個按鈕應打開一個包含訂單列表的頁面,該頁面是在輸入中指定的日期范圍內創建的。
當我單擊某些訂單時,將為其打開詳細信息頁面。 在這里,我可以編輯一些訂單字段,然后單擊“更新”按鈕(它必須更新@order並重定向到(!)上一頁-如果是今天的訂單,則打開今天的訂單。如果它是日期范圍內的訂單-然后顯示在指定范圍內創建的訂單)。
問題:在動作之間傳遞參數的最佳實踐是什么? 在更新后,我如何對我的“更新”操作說在哪里redirect_to(到今天訂單的頁面或到范圍內訂單的頁面)? 它必須是帶有params [:start_date]的hiiden標記或其他名稱?
“訂單詳細信息”頁面上的“后退”按鈕也是如此。 它必須返回到上一頁(保存為之傳遞的所有參數)。 我在想
link_to 'Back', :back
但是我聽說這不是一個好的解決方案。
謝謝!
我已經在redirect_to
而不是link_to
使用了它。
:back
是update
或create
操作中的一個不錯的選擇,因為重定向是通過GET完成的,所以當您發布到orders
或將PUT放置到orders/1
我想您會將用戶重定向到orders/new
或orders/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.