1

Rails 3でセッションを使用するのに少し問題があります。最初に、作業環境の一部について詳しく説明します。

herokuでホストされているアプリケーションがあります。たとえば、URLがhttp://myapp.herokuapp.comであるとします。

そして、 CNAMEがherokuを指すドメインを持っています。たとえば、 http://www.myapp.comです。

アプリからクライアントにメールを送信すると、アプリケーションの制限された領域へのURLが含まれているため、次のように実行されます。

http://www.myapp.com- >メール-> http://www.myapp.com/secret

しかし、ユーザーがhttp://www.myapp.com/log_inにリダイレクトされるシークレットエリアはどのようになっていますか

問題は次のとおりです。Railsはアプリケーションの実際のURL(この場合はhttp://myapp.herokuapp.com )を保存し、ログイン後、ユーザーをhttp://myapp.herokuapp.com/secretにリダイレクトします。そして、私はそれを望んでいません、それがフィールドhttp://myapp.comで継続されることを望みます。

これを行う方法はありますか?

4

1 に答える 1

1

これを試して :

redirect_to secret_path( host: 'myapp.com' )

また

redirect_to url_for( action: 'my_action', host: SOME_DEFAULT_HOST ) 

編集

あなたの質問をよく理解したかどうかわかりません-URIをDBに保存するということですか?

私見ですが、ハードコードされたURLを保存するのは面倒になる可能性があります。

可能であれば、完全な文字列パスではなく、分解されたURI部分を保存して、url_for後で引数をまたは任意のパスヘルパーに送信できるようにします(必要に応じて微調整するか、テーブル全体を一度に更新してホストを変更します)。

そうでない場合は、保存したURIを任意のライブラリでいつでも解析し、リダイレクトする前に微調整できます。

于 2013-02-13T13:06:08.770 に答える