Rails 3.1.0 default_url_options用于自定义路径

时间:2012-08-20 21:54:05

标签: ruby-on-rails ruby-on-rails-3.1

在我的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,我缺少什么?

1 个答案:

答案 0 :(得分:1)

您应该使用以下内容:

<%= copy_foo_path() %>

并在您的应用程序配置文件中添加。

config.force_ssl = true

这将在所有Rails环境中启用ssl。如果只想在生产环境中启用ssl,则只需将该行添加到生产配置文件中。