通过PLESK环境在ruby中创建和使用自定义环境变量

时间:2017-08-27 16:21:58

标签: ruby-on-rails ruby sqlite plesk

我正在尝试在plesk服务器中托管应用。我在printscreen中创建了一个自定义变量: enter image description here

我想在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命令时,我得到了这个结果: Rake db:seed result

编辑#2 :有些解决方案!

当我在任务参数中提供变量时它工作!!!但是如果我想以这种方式声明更多的环境变量会发生什么? some solution

2 个答案:

答案 0 :(得分:0)

我同意您对解决方案2的关注。解决方案的另一个问题是您无法与其他应用程序进程共享环境变量,例如:rails console或rails server。

另一种解决方案是使用/in/来管理环境变量。

  1. figaro添加到Gemfile
  2. 创建application.yml包含键值配置并上传到配置文件夹。
  3. ------ config / application.yml ------

    figaro

    然后再次尝试运行production: admin_pass: hello 任务。

答案 1 :(得分:0)

有一个关于这个问题的功能建议:

将 Ruby 菜单中“自定义环境变量”字段中指定的变量传递给任务

<块引用>

目前,域上“Ruby”菜单中的“自定义环境变量”选项仅用于将环境变量传递给应用程序。但是也需要将环境变量传递给 rake 任务,并且在当前的实现中,每次需要执行 rake 任务时,都需要在“运行 rake 任务”窗口中指定必要的变量。 选项“自定义环境变量”中指定的变量也应传递给 rake 任务,因为类似的选项在其他开发人员已知的产品中以这种方式工作,并用于托管 Heroku 和 DigitalOcean 等 Ruby 应用程序。

你可以投票给它here