Rails 3.0 form_tag Маршрутизация - PullRequest
       2

Rails 3.0 form_tag Маршрутизация

1 голос
/ 22 августа 2011

Я использовал следующий код в rails 2.3, не имея именованного маршрута:

 <% form_tag :controller => :session, :action => :login do %>

<ul>
    <li><%= label_tag :email %><%= text_field_tag :email %></li>
    <li><%= label_tag :password %><%= password_field_tag :password %></li>
    <li><%= submit_tag 'Sign In', :id => 'login_submit' %></li>
</ul>

 <% end %>

Однако я конвертирую свое приложение в приложение 3.0 и получаю сообщение об ошибке "Не найдено ни одного маршрута "/session/login"."

Нужно ли создавать именованный маршрут в rails 3.0 или есть лучший способ сделать это?

Создание именованного маршрута неЭто не правильный подход, потому что люди могли бы назвать это через URL.

Ответы [ 2 ]

0 голосов
/ 22 августа 2011

Именованный маршрут не обязателен, но вы должны объявить что-то вроде этого в вашем файле маршрутов:

match "/sessions/login" => "sessions#login"

В RoR 3, "session # login" - сокращение от "действие входа в систему контроллера сессий ".

Официальное руководство RoR по маршрутам написано очень хорошо и должно вам очень помочь.

0 голосов
/ 22 августа 2011

Вы можете добавить ресурсы маршрута для сеансов:

resoures :sessions

и исправьте форму:

 = form_tag sessions_path do
   ...

Не забудьте переименовать действие входа в систему в сеансе контроллера на новый

UPD:

или вы можете добавить именованный маршрут для 'session / login'

match 'session/login' => 'session#login', :as => :new_session

и использование:

= form_tag new_session_path do
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...