如何设置每个环境的config.action_controller.default_url_options = {:host ='#''}

现在我正在使用这个工作的开发主机,但我必须手动更改{:主机=>“”}代码,当我搬到生产。

post.rb

def share_all url = Rails.application.routes.url_helpers.post_url(self, :host => 'localhost:3000') if user.authentications.where(:provider => 'twitter').any? user.twitter_share(url) end end 

我想使用这个,然后定义每个环境的default_url_options:

post.rb

 def share_all url = Rails.application.routes.url_helpers.post_url(self) if user.authentications.where(:provider => 'twitter').any? user.twitter_share(url) end end 

我已经尝试添加到我的config / environments / development.rb但我仍然得到“缺less主机链接到!请提供:主机参数或设置default_url_options [:主机]”错误

development.rb

 config.action_controller.default_url_options = {:host => "localhost:3000"} 

我甚至试过这种方式:

development.rb

 config.action_controller.default_url_options = {:host => "localhost", :port => "3000"} 

编辑:

我现在也跟着这个,仍然是相同的错误指南http://edgeguides.rubyonrails.org/action_controller_overview.html#default_url_options

应用控制器

 class ApplicationController < ActionController::Base protect_from_forgery include ApplicationHelper def default_url_options if Rails.env.production? { :host => "example.com"} else {:host => "example1.com"} end end end 

这让我疯狂,我在这里错过了什么?

好,我想出了写出来的正确方法

 Rails.application.routes.default_url_options[:host] = 'localhost:3000' 

🙂

在对此文件所做的更改生效之前,您必须重新启动服务器。

Interesting Posts