我正在使用Devise。我需要将相同的rails项目推送到两个不同的heroku应用程序。有没有办法为这两个应用程序设置不同的主机?
具体而言,对于appA,production.rb应包含config.action_mailer.default_url_options = {:host => 'appA.heroku.com'}
对于appB,production.rb应包含config.action_mailer.default_url_options = {:host => 'appB.heroku.com'}
。
但是,似乎不可能在同一个production.rb中包含两行。
答案 0 :(得分:0)
您应该使用config var。这样,该值是根据heroku部署设置的,而不是在源代码中设置的。 有关详细信息,请参阅heroku documentation。
答案 1 :(得分:0)
您可以在heroku实例上使用环境变量来区分rails应用程序中的常量。
例如:
# production.rb
config.action_mailer.default_url_options = { :host => ENV['ACTION_MAILER_HOST'] }
然后,在您的本地计算机上:
% cd /path/to/project/A
% heroku config:add ACTION_MAILER_HOST=appA.heroku.com
% cd /path/to/project/B
% heroku config:add ACTION_MAILER_HOST=appB.heroku.com
有关参考和更多示例,请参阅此heroku article on environment variables。