Хорошо, эти два связанных вопроса относятся к Railscast # 21 :
У меня проблемы с маршрутами. Два вопроса:
1) Кажется, что маршруты в руководстве относятся к корню приложения; Я хочу, чтобы они были относительно корня модели. Так
"<a href="http://example.com/login" rel="nofollow noreferrer">http://example.com/login</a>
" Мне нужно быть "<a href="http://example.com/model/login" rel="nofollow noreferrer">http://example.com/model/login</a>
" (и наоборот для выхода из системы).
Я использую постоянные ссылки для ссылки на свои записи, и я не знаю, как указать переопределение, потому что каждый раз, когда я пытаюсь использовать "<a href="http://example.com/model/login" rel="nofollow noreferrer">http://example.com/model/login</a>
", я получаю сообщение об ошибке, которое говорит, что не может найти запись «логин». Как я могу переопределить это для входа / выхода?
2) Переход к пользовательскому маршруту для меня, похоже, не сохраняет пользовательский маршрут в моей адресной строке. Таким образом, переход к «<a href="http://example.com/login" rel="nofollow noreferrer">http://example.com/login</a>
» возвращает меня на нужную страницу, но браузер теперь говорит «<a href="http://example.com/session/new" rel="nofollow noreferrer">http://example.com/session/new</a>
» в адресной строке. В учебнике этого не происходит: приложение обслуживает правильную страницу и сохраняет пользовательский маршрут в адресной строке. Как я могу заставить это случиться для меня?
## Sessions Controller
class SessionController < ApplicationController
def create
session[:password] = params[:password]
flash[:notice] = "Successfully Logged In"
redirect_to :controller => 'brokers', :action => 'index'
end
def destroy
reset_session
flash[:notice] = "Successfully Logged Out"
redirect_to login_path
end
end
## Routes
ActionController::Routing::Routes.draw do |map|
map.resources :brokers, :session
map.login 'login', :controller => 'session', :action => 'create'
map.logout 'logout', :controller => 'session', :action => 'destroy'
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
end