コントローラにメソッドを追加して正しくルーティングしましたが、form_tag
からコールしようとすると、ルータエラーが発生します。どうしたの?form_tagが期待どおりに動作しない
<% form_tag search_item_path, :method => 'get' do %>
<%= text_field_tag :name , '' %>
<%= submit_tag "Submit" %>
<% end %>
路線:
resources :items do
collection do
get :search, :as => :search
end
end
すくいルートもOK:私はこのような何かを書く場合
search_item GET /items/:id/search(.:format) {:action=>"search", :controller=>"items"}
items GET /items(.:format) {:action=>"index", :controller=>"items"}
POST /items(.:format) {:action=>"create", :controller=>"items"}
new_item GET /items/new(.:format) {:action=>"new", :controller=>"items"}
edit_item GET /items/:id/edit(.:format) {:action=>"edit", :controller=>"items"}
item GET /items/:id(.:format) {:action=>"show", :controller=>"items"}
PUT /items/:id(.:format) {:action=>"update", :controller=>"items"}
DELETE /items/:id(.:format) {:action=>"destroy", :controller=>"items
しかし、作品:
<% form_tag url_for(:controller => "items" , :action => "search"), :method => "get" do %>
私はここで何をしないのです?私はそれがsearch_items_path
とルートを複数形する必要があると考えてい
私は 'as =>:search'を削除しました。そしてyes、それは複数の名前' search_items_path'です。私は 'search_item_path'を試してみましたが、なぜ初めて働かなかったのですか?ありがとう。 –