Что плохого в «сопоставлении» URL-адресов с действиями Rails с помощью этой формы? - PullRequest
0 голосов
/ 18 декабря 2010

В файле 'app / views / users / reset.html.erb ' у меня есть этот код:

<%= form_tag( send_reset_users_path, :method => :post ) do %>
    <%= text_field_tag :email %>
    <%= submit_tag("Send") %>
<% end %>

В 'app / controllers / * users_controller.rb *'У меня есть этот код:

  def reset
    respond_to do |format|
      format.html # reset.html.erb
    end
  end

  def send_reset
    ...
  end

В 'config / rout.rb ' У меня есть этот код:

  resources :users do
    collection do
      get 'reset'
      get 'send_reset'
    end
  end

Когда я отправляю форму, я получаюошибка: "Не найдено ни одного маршрута" / users / send_reset "" (URL браузера становится '... / users / send_reset'). Что не так? Как я могу "сопоставить" URL-адреса с действиями Rails?

PS: Я думаю, что проблема в "config / rout.rb" ...

Ответы [ 2 ]

3 голосов
/ 18 декабря 2010

проблема здесь :method => :post и get 'send_reset', по моему мнению, вы пытаетесь POST параметры, когда ваш контроллер ожидает метод GET

3 голосов
/ 18 декабря 2010

Ваш route.rb объявляет маршрут send_reset доступным только через get. Вы должны написать post 'send_reset':

resources :users do
  collection do
    get 'reset'
    post 'send_reset'
  end
end
...