Tag: 环境变量

如何在Ruby脚本中为命令shell获取环境变量?

我正在尝试从我的ruby程序中运行一些第三方bash脚本。 在我运行它们之前,它们需要我来源文件。 在命令行上它一切正常但在Ruby中它不起作用。 我发现系统命令将打开一个新的子shell进程,任何源代码都将在那里完成,并且无法从运行Ruby脚本的父shell进程中看到。 当系统调用结束时,子shell也被杀死。 我如何解决这个问题?

Heroku上的Ruby on Rails 4,带有反斜杠转义的环境变量

我有一个环境变量: MY_VALUE: “EFINbA\u003d\u003d\n” 当我通过ruby阅读它时,它返回为: ENV[‘MY_VALUE’] => “EFINbA\\u003d\\u003d\\n” …但仅限于Heroku,而不是Mac(通过local_env.yml文件设置,无可否认) 首先,我只是不明白为什么会这样做。 其次,当我尝试删除\并用\替换它们时,我发现没有任何效果。 虽然:ENV [‘MY_VALUE’]。gsub(“\”,“x”)=>“EFINbAxu003dxu003dxn” 这:ENV [‘MY_VALUE’]。gsub(“\”,“\”) …不起作用,因为最后一个双引号被转义,而: ENV[‘MY_VALUE’].gsub(“\\”,”\\”) …实际上什么都不做。 显然我在这里遗漏了一些基本的东西,而且我发现它的时间已经太晚了。 谢谢。

如何在sails.js下设置不同的环境和相应的配置?

我正在将2010 RoR应用程序迁移到Sails.js。 从表面上看,Sails.js看起来像是将应用程序迁移到Node.js平台的最佳框架。 在这个过程中,我遇到了一个限制 – 看起来风帆只能通过local.js和生产环境迎合开发环境。 在RoR下,我在config下有一个环境文件夹,其中包含dev,test,staging,production等ruby文件,其中包含为该环境定义的常量,日志记录级别等。 我正在寻找Sails.js下相同结构的一个例子。 谢谢, _K

.env没有在带有rspec的Rails中加载到测试环境中

我使用gem ‘dotenv-rails’, ‘~> 0.9.0’将环境变量加载到Rails 4.0.5应用程序中。 我有.env文件和.env.test。 所有这些都在开发中运行良好,但是当涉及到测试时,我使用rspec,它无法设置环境变量。 我在测试环境中进入了Rails控制台,我可以看到它们被设置为nil。 有关如何在测试中加载dotenv的任何提示?

无法validation证书 – 请设置’ENV = path_to_file’

我有一个使用Carrierwave上传文件的Rails 4应用程序。 安装Fog以将文件上传到Amazon 3后,我在上传文件时开始收到以下错误: Excon::Errors::SocketError in VideosController#create Unable to verify certificate, please set `Excon.defaults[:ssl_ca_path] = path_to_certs`, `ENV[‘SSL_CERT_DIR’] = path_to_certs`, `Excon.defaults[:ssl_ca_file] = path_to_file`, `ENV[‘SSL_CERT_FILE’] = path_to_file`, `Excon.defaults[:ssl_verify_callback] = callback` (see OpenSSL::SSL::SSLContext#verify_callback), or `Excon.defaults[:ssl_verify_peer] = false` (less secure). 我很困惑,因为我已将“SSL_CERT_FILE”添加到我的环境路径(通过控制面板在用户和系统变量下),将其设置为c:/RailsInstaller/cacert.pem(并重新启动我的计算机)。 当我的控制器在controllers / videos_controller中调用@ video.save时,错误就出现了: class SessionsController < ApplicationController def create @video = Video.new(video_params) if @video.save redirect_to videos_path, notice: […]

如何设置环境变量的Rails服务器?

我有以下命令。 我在启动rails server插入它 VARIABLE=development rails s 如何让这个变量自动启动,而不必每次都自己编程? 所以我会这样做 rails s 它将自动与该变量一起运行。

rails database.yml不接受ERB

在我的database.yml中,我有: staging: adapter: encoding: database: host: port: pool: username: password: 但是,在实际启动puma时它不会读取ERB部分: /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require’: Could not load ‘active_record/connection_adapters/_adapter’. Make sure that the adapter in config/database.yml is valid. If you use an adapter other than ‘mysql’, ‘mysql2’, ‘postgresql’ or ‘sqlite3’ add the necessary adapter gem to the Gemfile. (LoadError) 这没有任何意义,因为在Rails代码中加载数据库配置: def database_configuration yaml = Pathname.new(paths[“config/database”].existent.first || “”) […]

为什么我的Rails初始化器在控制台中缓存ENV变量(Foreman,Dev env)

最初的轻微烦恼现在变得令人头痛。 我正在构建一个Rails 4应用程序,并使用Foreman进行我的开发设置,使用Procfile和.env文件进行配置。 当我在.env文件中设置一个ENV变量时,我的应用程序正确选择了它。 在这种情况下,我在初始化器中为Paperclip设置了一些ENV选项。 当我去改变ENV变量的值时,问题浮出水面。 在控制台中,如果我键入ENV [“MY_VAR”],它将显示新值。 但是,我的初始化程序中使用的值(可能是在我启动控制台时运行)显示了旧值! 我的项目中没有任何地方列出旧值。 这让我相信环境以某种方式被缓存或者env变量被导出到我的shell。 我的地方用完了所以任何帮助都会非常感激! 我正在使用Ruby 1.9.3-p374和Rails 4.1.0在Mac(10.9.4)上进行开发。 例: ROOT / .ENV S3_BUCKET=mybucket 配置/初始化/ paperclip.rb Paperclip::Attachment.default_options[:s3_credentials] = {bucket: ENV[“S3_BUCKET”]} 如果我将S3_BUCKET的值更改为“newbucket”并运行“foreman run rails c”或“rails c”进入控制台,则会发生以下情况: ENV[“S3_BUCKET”] # => “newbucket” Paperclip::Attachment.default_options[:s3_credentials] # => {bucket: ‘mybucket’} 我应该提一下,这种行为也发生在我放入/ lib的类中。 我想这都是因为我忽略了一些愚蠢的事情。 有任何想法吗?

Heroku配置:推送不更新环境变量

我已经向Heroku部署了一个应用程序,我目前正将环境变量存储在.env文件中。 我使用了heroku config:push将变量推送到heroku,并且工作正常。 现在,我想更新其中一个。 我在.env文件中更改了它,并运行了heroku config:push再次heroku config:push 。 推送说它很成功,但是当我运行heroku config ,我可以看到值实际上没有改变。 我已经尝试运行heroku restart ,但这没有做任何事情。 如何更新heroku中的环境变量?

部署期间Capistrano’Bundle Not Found’错误

当我运行cap deploy:update我得到下面的错误,表明找不到bundle 。 当我从cap shell运行echo $PATH ,缺少包含bundle的/var/lib/gems/1.9.1/bin路径,但是这个路径在/etc/profile和~/.bashrc 。 有谁知道如何解决这个问题? [192.168.10.100] executing command *** [err :: 192.168.10.100] sh: *** [err :: 192.168.10.100] bundle: not found *** [err :: 192.168.10.100] command finished in 25ms failed: “sh -c ‘bundle install –gemfile /data/www/apps/my_app/releases/201104 04163717/Gemfile –path /data/www/apps/my_apps/shared/bundle –deployment –qui et –without development test'” on 192.168.10.100