我有一個搜索表單在我的應用程序佈局類似下面的搜索行動:應該如何從形式參數傳遞給在軌
%li
%form{:method => 'get' , :action => :search }
%input{:type=>'text',:length => "10"}
%input{:type=>'submit' , :value => 'search'}
,我必須創建一個名爲我的索引控制器內搜索類似下面的操作:
def search
@item = Item.search params[:search]
end
但是當我按下「搜索」按鈕,我不會從Rails的服務器的任何合適的回答所有我得到的是:
路由錯誤
沒有路由匹配[GET] 「/搜索」
,這是我route.rb
match "/search/:search" => "items#search"
post "items/:id/like" => "items#like"
resources :items do
put :like, :on => :member
end
resources :items do
resources :comments
end
resources :comments
# root :to => 'items#index'
root :to => 'items#list'
match ':controller(/:action(/:id(.:format)))'
和我的網址是這樣打 「搜索」 按鈕後:
http://0.0.0.0:3000/search
----------------- update -------------------------
如果和我說:
http://0.0.0.0:3000/search/criteria
,將工作
-----------------結束更新---------- ---------------
我猜想問題是從形式傳遞參數到適當的動作。因爲如果我手動調用上述網址,並且只是在其中添加搜索條件,它將完美地工作,但沒有形式的機會!
我該怎麼辦?
,如果我做你的方式說我會得到另一個錯誤:「ItemsError在ItemsController#搜索」,即使我直接傳遞參數,我會得到另一個錯誤:「路由錯誤」 –
typeError與路由無關。嘗試打印params.inspect或使用調試器來查看搜索功能中的錯誤 – spike
即使我手動爲搜索操作提供條件,也會出錯,這意味着路由有問題或者您有任何想法請寫在這裏因爲我認真沒有任何其他的想法。 –