我需要使用lib文件夹中文件中定义的方法的root_url方法.那可能吗?
我试着把这一行包括在我的课上:
include Rails.application.routes.url_helpers
但这给我错误
Missing host to link to! Please provide :host parameter or set default_url_options[:host]
编辑:我发现如果我首先初始化路由,它是有效的:
def initialize_routes if Rails.env.development? || Rails.env.test? Rails.application.routes.default_url_options[:host] = 'localhost:3000' elsif Rails.env.production? Rails.application.routes.default_url_options[:host] = 'example.com' end end
解决方法
应该有几个解决方案.
1)当在主机参数中使用root_url pass时,如下所示:
root_url(:host => 'localhost')
然而,这需要做出具体的环境.
2)您也可以设置路由default_url_options,如:
Rails.application.routes.default_url_options[:host]= 'localhost:3000'
3)在您的环境配置文件中,您应该按照错误中的说明设置default_url_options.例如:
在config / environments / development.rb中:
config.action_mailer.default_url_options[:host] = 'localhost'
在config / environments / test.rb中:
config.action_mailer.default_url_options[:host] = 'localhost'
在config / environments / production.rb中:
config.action_mailer.default_url_options[:host] = 'production.com'