さて、これら 2 つの関連する質問は、Railscast #21に関するものです。
ルートで悩んでいます。2 つの問題:
1) チュートリアルのルートは、アプリケーションのルートに関連しているようです。それらをモデルのルートに相対的にしたい。そう
" http://example.com/login
" I need to be " http://example.com/model/login
" (ログアウトの場合はその逆)。
パーマリンクを使用して自分のレコードを参照していますが、オーバーライドを指定する方法がわかりません。" " を使用しようとするたびに、レコード"login"http://example.com/model/login
が見つからないというエラーが表示されるからです。ログイン/ログアウトのためにこれをオーバーライドするにはどうすればよいですか?
2) カスタム ルートに移動しても、アドレス バーにカスタム ルートが保持されないようです。" " に行くとhttp://example.com/login
正しいページに移動しますが、ブラウザhttp://example.com/session/new
のアドレス バーには " " と表示されます。チュートリアルでは、これは発生しません。アプリは正しいページを提供し、カスタム ルートをアドレス バーに保持します。どうすればこれを実現できますか?
## 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