如何为Devise设置两个主机配置?

时间:2011-08-05 16:37:59

标签: ruby-on-rails heroku devise

我正在使用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中包含两行。

2 个答案:

答案 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