0

私のroutes.rbには、カスタムパスが定義されています。

match "foo/copy" => "foo#copy", :via => [ :post ], :as => "copy_foo"

config/initializersディレクトリにhttps_by_default.rbという名前のイニシャライザがあります。これには次の1行が含まれています。

Rails.application.routes.default_url_options[:protocol] = 'https'

Railsコンソールを実行してと入力Rails.application.routes.default_url_optionsすると、期待どおりに戻ります{:protocol => 'https}

しかし、生成されたカスタムパス_urlヘルパーを使用している私のビューでは、httpsでURLを生成しません。<%= copy_foo_url() %>ERBでは。を返しますhttp://localhost:3000/foo/copy

名前付きルートヘルパーにdefault_url_optionsを尊重させるために何が欠けていますか?

4

1 に答える 1

1

代わりに次を使用する必要があります。

<%= copy_foo_path() %>

そして、アプリケーション構成ファイルに追加します。

config.force_ssl = true

これにより、すべてのRails環境でSSLが有効になります。本番環境でのみsslを有効にする場合は、本番構成ファイルにその行を追加するだけです。

于 2012-08-20T22:44:33.843 に答える