设置URL帮助程序的默认主机

时间:2015-02-08 19:17:45

标签: ruby-on-rails url configuration

我正在创建一个Reddit类型的网站来学习Rails,但我使用子域而不是更长的URL用于subreddits(即funny.reddit.com而不是reddit.com/r/funny)。< / p>

对于开发,我使用http://vcap.me(重定向到localhost)来处理子域名,因为我认为普通的localhost不能使用子域名。

我在连接这些子域时遇到了一些困难。我能做到

subreddit_url = url_for(host: "http://vcap.me", subdomain: subreddit.subdomain) 

并且工作得很好。但是,我不想对主机进行硬编码,因为我想最终推送到Heroku而且主机会有所不同。我尝试过类似于How do I set default host for url helpers in rails?的内容,更具体地说是

class ApplicationController < ActionController::Base
 def default_url_options
  if Rails.env.development?
   {:host => "http://vcap.me"}
  else  
   {}
  end
 end
end

但我的url_for会返回&#39; /&#39;当我做的时候

url_for(subdomain: subreddit.subdomain)

我也试过设置only_path:false但它也没有做任何事情。

使用Rails 4.2 Ruby 2.2。

谢谢!

1 个答案:

答案 0 :(得分:-3)

这并不重要,因为无论如何你都不能在免费的Heroku应用程序上使用子域名。