Devise создает для вас набор вспомогательных функций, которые генерируют правильные пути.Запустите rake routes
из командной строки, чтобы увидеть их.Вы получите вывод, подобный следующему (при условии, что ваша модель Devise называется User
).
new_user_session GET /users/sign_in(.:format) {:controller=>"devise/sessions", :action=>"new"}
user_session POST /users/sign_in(.:format) {:controller=>"devise/sessions", :action=>"create"}
destroy_user_session GET /users/sign_out(.:format) {:controller=>"devise/sessions", :action=>"destroy"}
user_password POST /users/password(.:format) {:controller=>"devise/passwords", :action=>"create"}
new_user_password GET /users/password/new(.:format) {:controller=>"devise/passwords", :action=>"new"}
edit_user_password GET /users/password/edit(.:format) {:controller=>"devise/passwords", :action=>"edit"}
user_password PUT /users/password(.:format) {:controller=>"devise/passwords", :action=>"update"}
user_registration POST /users(.:format) {:controller=>"devise/registrations", :action=>"create"}
new_user_registration GET /users/sign_up(.:format) {:controller=>"devise/registrations", :action=>"new"}
edit_user_registration GET /users/edit(.:format) {:controller=>"devise/registrations", :action=>"edit"}
user_registration PUT /users(.:format) {:controller=>"devise/registrations", :action=>"update"}
user_registration DELETE /users(.:format) {:controller=>"devise/registrations", :action=>"destroy"}
Добавление _path
к первой части каждой строки дает вам имя вспомогательной функции, которую вынужно позвонить.
Например, следующее даст вам ссылку на страницу входа в систему:
<%= link_to "Login", new_user_session_path %>
Помните, что запрос DELETE
, а не GET
(например, ссылку выхода из системы), вам необходимо указать это как часть вызова link_to
.
<%= link_to "Logout", destroy_user_session_path, :method => :delete %>