我正在尝试在plesk服务器中托管应用。我在printscreen中创建了一个自定义变量:
我想在seed.rb文件中访问此变量,以便我可以通过rake db:seed
创建一个密码用户。
这是正确的做法吗?是否有更好,更安全的方法来创建具有敏感数据(密码)的管理员用户?如果可以,请指出教程。
修改 我会提供更多信息
我使用这个seeds.rb文件:
case Rails.env
when "development"
puts "Seeding: development mode!"
...
when "production"
puts "Seeding: production mode!"
puts "ENV: #{ENV['admin_pass']}"
end
puts "Seeding finished!"
当我使用plesk提供的run rake task命令时,我得到了这个结果:
编辑#2 :有些解决方案!
答案 0 :(得分:0)
我同意您对解决方案2的关注。解决方案的另一个问题是您无法与其他应用程序进程共享环境变量,例如:rails console或rails server。
另一种解决方案是使用/in/
来管理环境变量。
figaro
添加到Gemfile ------ config / application.yml ------
figaro
然后再次尝试运行production:
admin_pass: hello
任务。
答案 1 :(得分:0)
有一个关于这个问题的功能建议:
将 Ruby 菜单中“自定义环境变量”字段中指定的变量传递给任务
<块引用>目前,域上“Ruby”菜单中的“自定义环境变量”选项仅用于将环境变量传递给应用程序。但是也需要将环境变量传递给 rake 任务,并且在当前的实现中,每次需要执行 rake 任务时,都需要在“运行 rake 任务”窗口中指定必要的变量。 选项“自定义环境变量”中指定的变量也应传递给 rake 任务,因为类似的选项在其他开发人员已知的产品中以这种方式工作,并用于托管 Heroku 和 DigitalOcean 等 Ruby 应用程序。
你可以投票给它here