我确定不应将我的电子邮件密码发布到environment.rb文件中的公共git存储库。有没有办法避免这种情况,而不将整个文件包含在.gitignore中?
答案 0 :(得分:9)
您可以将电子邮件凭据保存在另一个文件config / email.credentials.yml中:
host: ...
username: ...
password: ...
...
并在您的environment.rb文件中加载它们(例如):
YAML.load_file("#{Rails.root}/config/email.credentials.yml")['username']
然后你会在.gitignore文件中提到凭证文件。
此外,如果您在多个服务器上部署应用程序,则可能会检查该文件是否存在于初始化程序中,否则会引发错误。因此,除非邮件配置文件存在,否则请确保应用程序无法启动。
答案 1 :(得分:0)
我还发现了另一种可能更容易的方法:
配置/初始化/为setup_mail.rb。在那里为gmail应用程序添加以下内容(示例):
ActionMailer::Base.smtp_settings = {
:enable_starttls_auto => true,
:address => 'smtp.gmail.com',
:port => 587,
:domain => 'domain.name',
:authentication => :plain,
:user_name => 'namd@domain.name',
:password => 'secret'
}
然后只需添加到.gitignore文件即可。这样您只能编辑2个(而不是3个)文件。
答案 2 :(得分:0)
这就是我使用的:
instance_eval File.read "#{ Rails.root }/config/confidential.rb"
和confidential.rb是一个文件:
config.pass1 = '1234'
config.pass2 = '54r235'