1

Railsアプリのメインホームページに検索フォームを追加しようとしています。これは、候補モデル全体を検索して、候補の名前を入力すると候補の写真が表示され、それらをクリックすると表示されることを確認できます候補者のページに。

質問: ホームページに検索フォームが表示されますが、ルーティング エラーが発生します: [GET] "/search" に一致するルートがありません

views/home/index.html.erb のコードは次のようになります。

<%= form_tag("/search", :method => "get") do %>
<%= text_field_tag(:q) %>
<%= submit_tag("Search") %>
<% end %>

検索コントローラー:

def index
@candidates = Candidate.search(params[:name])
end

検索ビュー (views/search/index.html.erb):

<h1> Here are your search results: </h1>
<% @candidates.each do |candidate| %>
<%= link_to image_tag(candidate.picture, :size => "100x100", :alt => "Edit Entry"),     candidate%>
<% end%>

候補モデル:

def self.search(name)
 where('name LIKE ?', "%#{name}%")
end

レーキ ルート:

candidates_show GET    /candidates/show(.:format)     candidates#show
candidates_new GET    /candidates/new(.:format)      candidates#new
donations_index GET    /donations/index(.:format)     donations#index
home_index GET    /home/index(.:format)          home#index
import_candidates POST   /candidates/import(.:format)   candidates#import
candidates GET    /candidates(.:format)          candidates#index
POST   /candidates(.:format)          candidates#create
new_candidate GET    /candidates/new(.:format)      candidates#new
edit_candidate GET    /candidates/:id/edit(.:format) candidates#edit
candidate GET    /candidates/:id(.:format)      candidates#show
PUT    /candidates/:id(.:format)      candidates#update
DELETE /candidates/:id(.:format)      candidates#destroy
root        /                              home#index
4

1 に答える 1

1

フォーム タグは を指してsearchいますが、というルートはありませんsearch。上で提案したように、indexメソッドを検索コントローラーからホーム コントローラーに移動するかsearch、routes.rb のようにルートを追加します。

match "search" => "search#index"
于 2013-04-11T22:29:19.910 に答える