我正在创建一个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。
谢谢!
答案 0 :(得分:-3)
这并不重要,因为无论如何你都不能在免费的Heroku应用程序上使用子域名。