2010-06-07 90 views
-1

我正在嘗試構建一個搜索功能,它在高層次上可以像這樣工作。rails route問題

1 - 我有一個搜索模型,帶有search_set操作的控制器和用於呈現搜索的搜索視圖/部分。 2 - 在主頁上,serach表單加載了一個空的搜索對象或一個使用session [:search](包含用戶搜索首選項,郵政編碼,接近度,排序順序,每頁等)初始化的搜索對象。此表單對search_set有一個post(:put)操作。

3 - 當註冊用戶執行一組搜索表單時,會收集搜索表單的參數,並針對該用戶保存搜索記錄。如果未註冊用戶執行搜索,則搜索集操作只是將參數存儲在會話[:搜索]中。無論哪種情況,都會使用給定的參數執行搜索,並顯示結果。此時,在地址欄中的URL是一樣的東西..

http://localhost:3000/searches/search_set?stype=1

此時如果用戶只需點擊地址欄上輸入,我得到一個錯誤,指出這一點「不採取行動迴應展示「我猜測是因爲URL包含使用put方法的search_set,即使我有一個search_show(:get)操作(它簡單地重新運行會話中的搜索或保存在數據庫中)也不會被調用。

我該如何處理這種情況,我可以將用戶點擊進入地址欄的路由路由到get方法?

如果這並不能說明問題,請讓我知道我可以分享更多的細節/代碼等

謝謝!

回答

0

我想如果你創建自己的路線,而不是使用寧靜的路線,這不會是一個問題。沒有看到你正是這可能幫助什麼:

map.connect "/searches/", :controller => 'searches', :action => 'show' 

雖然得到優選用於搜索(共享/書籤的網址等),如果要保存的搜索到服務器的post請求是適當的。

我不知道這會有所幫助,但Thoughtbot貼出了一大篇有關搜索而回:

http://robots.thoughtbot.com/post/159805369/search-by-quacking-like-activerecord