草庐IT

init_env

全部标签

ruby - @app.call(env) 到底做了什么?

我真的很喜欢了解这些东西在引擎盖下是如何工作的,尤其是在技术方面。目前,我正在更深入地研究ruby​​,并尝试仅将它与rack一起使用,以了解基于rack的框架的工作原理。此刻,Rack中间件让我抓狂。为什么?尽管中间件非常简单,但我对@app.call(env)还是有些困惑。为了清楚起见,请考虑以下代码:classMyCustomMiddlewaredefinitialize(app)@app=appenddefcall(env)@app.call(env)ifenv['REQUEST_METHOD']!='POST'body=env['rack.input'].clonebody=

ruby - ENV 在 Ruby 中返回什么对象?

有一个我们都知道的ENV变量。它返回一个对象。但是ENV的返回值在视觉上类似于Hash。但事实并非如此。例如:>ENV=>{"SHELL"=>"/bin/bash","SESSION_MANAGER"=>"local/archlinux:@/tmp/.ICE-unix/613,unix/archlinux:/tmp/.ICE-unix/613","COLORTERM"=>"truecolor","XDG_CONFIG_DIRS"=>"/etc/xdg","XDG_MENU_PREFIX"=>"xfce-","SSH_AUTH_SOCK"=>"/tmp/ssh-Al0pdO1R5970/

ruby - rbenv: 没有这样的命令 `init'

我根据https://github.com/sstephenson/rbenv#section_2的说明安装了rbenv在第4点重新启动我的shell会导致错误$rbenvinit-rbenv:nosuchcommand`init'尝试直接从其文件夹运行命令也不起作用。$cd.rbenv/bin$./rbenvinit-rbenv:nosuchcommand`init'我的$PATH$echo$PATH/home/myusername/.rbenv/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/myusername/b

ruby - 如何更改/usr/bin/env?

我有使用#!/usr/bin/envruby​​的脚本,但我已经切换到使用RubyEnterpriseEdition而不是Ubuntu服务器中包含的默认ruby​​。因此,当我尝试运行脚本时,脚本会崩溃。如何将RubyEE路径添加到/usr/bin/env? 最佳答案 #!/usr/bin/envruby​​类似于从命令行简单地调用ruby,因此适用相同的规则。基本上,$PATH环境变量中的各个条目按顺序检查,并使用最先找到的ruby。因此,请确保RubyEE的ruby在搜索路径顺序中比其他ruby靠前。我不熟悉RubyEE,所以如

ruby-on-rails - 为什么 Assets 不使用 RAILS_ENV 集进行预编译?

我几乎浏览了网络上的每一篇文章来解决这个问题,但到目前为止没有任何帮助。这是怎么回事。我使用Capistrano来部署我的应用程序,直到昨天一切都运行良好。无论如何,我都无法预编译我的Assets。因此,当我在生产服务器上本地执行rakeassets:precompile只是为了检查Assets是否完全被预编译时,它一切正常。但是,当我执行RAILS_ENV=productionrakeassets:precompile时,它失败了。我尝试了不同的环境,但除了省略RAILS_ENV之外没有任何效果。我面临的问题是我的最新更改没有反射(reflect)在生产中。这里是错误痕迹I,[201

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_