6
Railsのリダイレクト
ユーザーは、彼らがログインしていない/写真に移動しようとする場合は2.3.11にログインした後、元の宛先に、彼らは[site]/admin/login?route=[site]/photos
に向けられています。彼らがログインした後、デフォルトのホームページの代わりに「ルート」に定義されたものに送信されたいと思います。 /app/controllers/admin_controller.rbで
:
def login
if session[:user_id] #already logged in
redirect_to ''
@destination = request.url
end
if request.post?
if [authentication code]
if user.activated? #check to see whether the user has activated their account
session[:user_id] = user.id
if params[:route] # ********
redirect_to "#{params[:route]}"
else
redirect_to :controller => 'home'
end
else
flash.now[:notice] = "Your account hasn't been activated yet. Check your emails!"
end
else
flash.now[:notice] = "Invalid email/password combination"
end
end
end
"*" エドラインが正しく動作しないものです。パラメータを見るためにチェックすると:ルートはそれらの間にないので、引数はログインポストで渡されていません。誰も私にそれがなぜではなく、どのようにそれを修正できるかを説明することができますか?
ありがとうございました!あなたが何か行うことができ
がhttp://stackoverflow.com/questions/2139996/ruby-on-rails-redirect-toback – Swift
を見てくださいこれが見えますしかし、私はまだRailsでかなり新しくなっていますので、どこに置いてほしいのですか?アプリケーションコントローラ(ログインページにログインしていない訪問者をリダイレクトする)または上に掲載されたメソッドのどこかに入りますか?ありがとう! – Benjin
ありがとうございます。それは働いた(一度私がそれを考え出した)! 'DEF LOGGED_INない限り を承認 : 認証方法に指示しbefore_filterを持っている:私はやってなってしまったものを他のすべてについて が、これはでしたか? セッション[:original_target] = request.request_uri フラッシュ[:告知]ユーザを認証した後、私のログインコントローラで続い= "あなたは、そのページを閲覧するにはログインする必要があり、" redirect_toのHOME_URL 終了 end' 、、、セッション[:original_target]に何かが格納されているかどうかを確認し、存在する場合はそれに進みます。 – Benjin