У меня есть форма поиска, которая должна POST для «пользователи / поиск». Ниже приведены соответствующие фрагменты кода: -
Форма
<%=simple_form_for @user, :url => search_user_path(@user), :input_html => {:method => :post} do |f|%>
<div id="top" style="width:979px; height:30px;">
<%= select "search", :area_id, Area.find(:all).collect { |p| [p.name, p.id]}, {:selected => current_user.address.area} %>
<%= f.association :categories, :as => :check_boxes, :label => false%>
<%= f.submit "Submit"%>
</div>
<% end %>
Я ожидаю, что это POST для пользователей /: id / search
routes.rb
resources :users do
member do
post 'search'
end
end
рейковые маршруты | поиск grep
search_user POST /users/:id/search(.:format) {:action=>"search", :controller=>"users"}
Итак, маршрут существует
Пользовательский контроллер имеет следующий метод
def search
Rails.logger.debug('In users#search')
end
Когда я нажимаю "Отправить", я получаю ошибку маршрутизации.
Started POST "/users/9/search" for 127.0.0.1 at 2011-10-28 14:11:04 +0530
ActionController::RoutingError (No route matches "/users/9/search"):
Я ничего не понимаю по этому поводу, и после многих потраченных впустую исследований я обращаюсь к сообществу за информацией Любые указатели будут высоко оценены. Спасибо.
К вашему сведению, я на рельсах 3.0.9 и ruby 1.9.2
-Tarun