0

在我的 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 帮助程序时,它不会使用 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 回答