草庐IT

ruby-on-rails - NoMethodError:ActionMailer::TestCase 中 nil:NilClass 的未定义方法 'env'

我开始使用ruby​​onrails并创建了一个示例应用程序。在这个应用程序中,我有一个邮件类和一个测试生成的邮件类。除了来自ActionMailer::TestCase的测试,我设法使所有测试都正常工作。每次运行测试时,我都会收到一条错误消息:NoMethodError:undefinedmethod'env'fornil:NilClass.我生成的邮件程序测试方法如下所示:test"new_project"domail=ProjectMailer.new_projectassert_equal"Newproject",mail.subjectassert_equal["to@exa

ruby-on-rails - rails 上的 ruby "usr/bin/env: ‘ruby2.3’ : No such file or directory"

当我在终端上输入bundleexecrakedb:migrate时遇到了一些问题然后我收到类似`/usr/bin/env:‘ruby2.3’:Nosuchfileordirectory 最佳答案 我有同样的问题但是在运行时:railsnewmy_application但在通过以下方式重新安装railsgems之后:geminstallrails它工作得很好,我可以运行:railsnewmy_applicationbundleinstall和bundleexecrailss没有任何问题。

javascript - Javascript 中带 Ruby on Rails ENV 变量的 Stripe

我不确定如何将可发布key放入我的JavaScript代码中。当我将可发布key的值直接放入JavaScript时,它工作正常。当我尝试使用环境变量时它不起作用。配置/初始化程序/stripe.rbRails.configuration.stripe={:publishable_key=>ENV['PUBLISHABLE_KEY'],:secret_key=>ENV['SECRET_KEY']}Stripe.api_key=Rails.configuration.stripe[:secret_key]javascripts/charges.js.erbStripe.setPublish

ruby-on-rails - Heroku -/usr/bin/env : ruby1. 9.1: 没有那个文件或目录

我有一个Rails应用程序,当我在本地运行它时,它工作正常。但是当我将我的应用程序上传到Heroku时,上传时出现以下错误:/usr/bin/env:ruby1.9.1:Nosuchfileordirectory当我请求页面时出现这个错误:2014-02-03T01:52:52.032866+00:00heroku[router]:at=errorcode=H10desc="Appcrashed"method=GETpath=/favicon.icohost=whispering-fortress-2710.herokuapp.comrequest_id=5db8fbf4-2250-4

ruby-on-rails - Rails - request.env ['HTTP_X_FORWARDED_FOR' ] 和 request.remote_ip 之间的区别

我正在对现有RoR应用程序添加一些更改,发现request.env['HTTP_X_FORWARDED_FOR']返回了nil。我将其更改为request.remote_ip并获得了客户端的正确IP地址。为什么request.remote_ip在request.env['HTTP_X_FORWARDED_FOR']返回nil时返回一个IP?它们之间有什么区别?我怎样才能使request.env['HTTP_X_FORWARDED_FOR']工作,我应该使用哪一个(最佳实践)? 最佳答案 通常,您应该使用request.remote_

ruby - 如何在 Rack/测试中设置 env ['SERVER_NAME' ]?

在Sinatra测试中,env['SERVER_NAME']默认为www.example.com.我如何将其设置为某个任意域?capybara有.default_host方法,但不使用capybara。或者,是否可以更改env[DEFAULT_HOST]?使用RSpec、Sinatra、WebMock。编辑:添加env['SERVER_NAME']='www.foo.com'RSpec测试引发异常:NameError:undefinedlocalvariableormethod'env'for# 最佳答案 env助手只能在Sinat

ruby - Capistrano 从部署服务器上的 .env 中读取

我正在尝试将数据库备份作为Capistrano(v3)部署脚本的一部分(用于非Rails应用程序)。如果我将数据库配置硬编码到脚本中,该脚本工作正常。现在我想从.env文件加载数据库配置。在我的本地机器上,我的.env文件(在Capfile旁边的repo根目录中)如下所示:DB_NAME='local_name'DB_USER='local_user'DB_PASSWORD='local_pw'DB_HOST='127.0.0.1'在服务器上,.env文件(Capistrano已将其放置在shared文件夹中并从current文件夹符号化为)如下所示:DB_NAME='dev_name

ruby-on-rails - RACK_ENV 在 Rails 应用程序中做什么?

我有一个Rails应用程序已经投入生产。设置这些环境变量之前的人:...exportRACK_ENV=noneexportRAILS_ENV=production...RACK_ENV=none是做什么的?我在任何地方都找不到关于它的文档。我需要在Rails应用程序中设置它还是可以删除该导出? 最佳答案 恕我直言,这没用。要找到Rails应用程序的当前环境,首先查找RAILS_ENV环境变量,然后查找RACK_ENV环境变量,然后默认为'development'. 关于ruby-on-r

ruby-on-rails - 如何为脚本或批处理文件设置 rails_env

我将批处理文件放在lib文件夹中并使用railsdb配置,像这样的事件记录。require"#{File.dirname(__FILE__)}/../config/environment.rb"classBatchdefhelloMessage.newdo|t|t.title="hello"t.saveendendendbatch=Batch.newbatch.hello执行批处理时rubylib/batch.rb在开发环境下没问题但生产环境仍然保存开发数据库...我如何像这样设置rails_envbatch.rbrubylib/batch.rbRAILS_ENV=production

ruby - 为什么 ENV 表现得像一个散列,但它是一个 Object 类

我认为ENV是哈希值是否正确ENV['HOME']=>'/Users/yozloy'但是ENV.class#=>Object 最佳答案 它实现了大部分Hash方法,但显然缺少一些:[:default,:default=,:default_proc,:default_proc=,:merge!,:merge,:flatten,:compare_by_identity,:compare_by_identity?]其中的大多数您从未想过要使用,但merge和flatten可能很有用。请记住,ENV不完全是哈希,而是环境变量的包装器以及用于