在我的routes.rb中,我定义了一个自定义路径:
match "foo/copy" => "foo#copy", :via => [ :post ], :as => "copy_foo"
我的config / initializers目录中有一个名为https_by_default.rb的初始化程序,它包含一行:
Rails.application.routes.default_url_options[:protocol] = 'https'
如果我运行rails console并输入Rails.application.routes.default_url_options
,它会按预期返回{:protocol => 'https}
。
但在我看来,我使用生成的自定义路径_url helper时,它不会使用https生成URL。 ERB中的<%= copy_foo_url() %>
返回http://localhost:3000/foo/copy
。
为了让我的命名路线助手能够尊重default_url_options,我缺少什么?
答案 0 :(得分:1)
您应该使用以下内容:
<%= copy_foo_path() %>
并在您的应用程序配置文件中添加。
config.force_ssl = true
这将在所有Rails环境中启用ssl。如果只想在生产环境中启用ssl,则只需将该行添加到生产配置文件中。