我想做这样的事情
config.default_host = 'www.subdomain.example.com'
在我的一些配置文件中,以便object_url
助手(ActionView::Helpers::UrlHelper
)生成以http://www.subdomain.example.com开头的链接
我试图搜索文档,但除了ActionMailer
文档和http://api.rubyonrails.org/classes/Rails/Configuration.html之外,我没有找到任何对我没有用处的文档,因为我不知道应该在哪个pat中查找。有没有一个地方可以描述Rails::Initializer.config的整个结构?
发布于 2011-03-14 07:10:23
asset_host
不适用于urls
您需要在ApplicationController
中覆盖default_url_options
(至少在Rails3中)
http://edgeguides.rubyonrails.org/action_controller_overview.html#default-url-options
class ApplicationController < ActionController::Base
def default_url_options
if Rails.env.production?
{:host => "myproduction.com"}
else
{}
end
end
end
发布于 2014-01-12 08:20:48
在环境配置中定义默认主机:
# config/environments/staging.rb
MyApp::Application.configure do
# ...
Rails.application.routes.default_url_options[:host] = 'preview.mydomain.com'
# ...
end
然后,您可以在应用程序中的任何位置创建URL:
Rails.application.routes.url_helpers.widgets_url()
或者在类中包含URL帮助器:
class MyLib
include Rails.application.routes.url_helpers
def make_a_url
widgets_url
end
end
如果您没有定义默认主机,则需要将其作为一个选项进行传递:
widgets_url host: (Rails.env.staging? ? 'preview.mydomain.com' : 'www.mydomain.com')
指定协议之类的内容也很有用:
widgets_url protocol: 'https'
发布于 2015-02-03 11:58:37
另一种方法是这样设置它
# config/production.rb
config.action_controller.default_url_options = { host: 'myproduction.com' }
https://stackoverflow.com/questions/2660172
复制相似问题