2017-12-30 60 views
0

APIモードのアプリケーションでメールのURLを生成するにはどうすればよいですか?Ruby On RailsでURL(url_for)を生成する

"host/confirmation/token"というタイプのURLを生成しますか?

は、私がテストした:

<%= url_for("confirm/#{@token}") %> 

結果:

confirm/JtuQW54DkZXtAnhm 

しかし、ホストが存在しないが、どのように内部の "ホスト" を入れるには?

は私が設定:

config.action_mailer.default_url_options = { 
    host: "lol.com" 
    } 
+0

[なurl_for](https://apidock.com/rails/ActionView/RoutingUrlFor/url_for)の定義は 'と言うAPIに行くより詳細な説明については、この

url_for controller: 'tasks', action: 'testing', host: 'lol.com' # => 'http://lol.com/tasks/testing' 

のようなものに従うことができますonly_path'はデフォルトで 'true'です。あなたは' url_for'呼び出しのパラメータとして 'only_path:false'を試しましたか? –

答えて

0

あなたは同じように、あなたなurl_for呼び出しにfalseから:only_pathを設定する必要があります:あなたは、あなたのルートファイルを入れていない

<%= url_for({ action: "confirm", token_id: @token, controller: "controller_name", only_path: false }) %> 
+0

'config.action_mailer.default_url_optionsは= { は、ホスト: "lol.com"、 only_path:偽 }'私はあなた 'default_url_options'にこの同じ問題 –

+0

ないをテストしたが、あなたの'呼び出すurl_for' –

+0

'ActionViewに: :Template :: Error:引数の数が間違っています(与えられた2、期待値0..1) '、不可能 –

0

、私は方法がわかりませんルートファイルを作業する。

あなたは

+0

'ActionView :: Template :: Error:経路が一致しません.'、そのAPIモード、URLはサーバーとクライアント間で異なります。私は" production "に応じてURLを生成したいと思います。 "developpemnt" env –

+0

そのため、ルートファイルを確認する必要があります。 –

+0

ルートファイルにはAPIルートが含まれています。クライアントルートはありません。 ルートのための 'url_for'マッピング、クライアント上のルートは異なっていますが、わかりますか? –

関連する問題