一千萬個為什麽

搜索

如何使用form_tag更新params


我一直在為Rails中的問題苦苦掙紮幾天,但仍無法找到解決方案。你能幫幫我嗎?

問題:我有一個搜索框,在params結構中放置:search_string條目。我使用form_tag,它工作正常。

 'items', :action => 'find' do %>
    

問題是我想添加和更新其他params鍵值(在另一個視圖中),例如:start_date,以過濾search_string結果。這是我在視圖中使用的代碼剪切:

 "items", :action => "find", :params => params do %>
    
    


 "items", :action => "find", :params => params do %>
    
    

當我第一次點擊“四月”提交按鈕時,參數就被正確傳遞給控制器​​(即有一個參數[:start_date] ='四月')。但是,當我嘗試之後單擊“March”按鈕時,params [:start_date]不會更新。我當然認為這是一個愚蠢的新手錯誤,但我無法弄清楚如何正確使用form_tag。你能告訴我我做的事情嗎?否則,你能告訴我哪個是使用form_tag更新params的最佳方法嗎?非常感謝你提前。

米克爾

最佳答案

您可能想要做的是強制合並參數,類似於以下內容:

 "items", :action => "find", :params => params.merge(:date_start => '2010-03-01') do %>
    

有可能你無意中提交了兩個相同的參數,其中第一個被選中,但由於“第一個”沒有明確定義,你可能會得到不一致的結果。

查看日誌文件以查看從兩個表單接收的參數。

轉載註明原文: 如何使用form_tag更新params

猜你喜歡