2014-05-08 41 views
0

我已經爲我的應用程序(書籍類)添加了一個搜索功能,沒有路線匹配{:action =>「search」,:controller =>「devise/books」}

<%= form_tag url_for(:controller => 'books', :action => 'search'), :method => 'get' do %> 
<label>Search</label> 
<%= text_field_tag :search, params[:search], :id => 'search_field' %> 
<%= submit_tag "Search", :name => nil %> 
<% end %> 

我也修改了相應的routes.rb:

Rails.application.routes.draw do 
    devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } 
    resources :users 
    resources :reviews 
    resources :books 
    root :to => "books#index" 

    match '/search', to: 'books#search', via: :get 

現在,當我點擊搜索按鈕,我得到以下錯誤:

No route matches {:action=>"search", :controller=>"devise/books"} 

提取的源(左右線#1):

1 <%= form_tag url_for(:controller => 'books', :action => 'search'), :method => 'get' do %> 

不知道爲什麼Rails是尋找一個控制器稱爲色器件/這裏的書籍。任何幫助提前感謝和感謝。

斯拉夫科

回答

0

嘗試

match 'search', to: 'books#search', via: :get 

(無 「/」 中的 「/搜索」)

+0

這給了相同的結果。 – user3570192

0

請儘量將

<%= form_tag("/search", method: "get") do %> 
<label>Search</label> 
<%= text_field_tag :search, :id => 'search_field' %> 
<%= submit_tag "Search", :name => nil %> 
<% end %> 
+0

這在第一行中引起了Devise :: SessionsController#new中的SyntaxError。 – user3570192

+0

我更新了代碼,請重試。 –

+0

看起來更好。需要推動heroku進行測試。謝謝。 – user3570192

相關問題