草庐IT

global_env

全部标签

Ruby stdio consts 和 globals,有什么用?

Ruby有用于stdio的常量和全局变量。即常量STDIN、STDOUT、STDERR及其对应的变量$stdin、$stdout,$stderr.我理解常量和变量之间的区别。我知道在执行脚本时,常量被不可变地设置为文件描述符。我还了解到您可以在运行时更改(部分)变量。我很好奇这种功能的实际用途。你为什么要这样做?你能取得什么成就?如果能看到从真实世界项目中提取的一些示例代码,甚至只是用例,那就太棒了。更新:从我目前收集到的信息来看,似乎在编写您自己的库/程序时,您应该更喜欢使用变量而不是常量,以便其用户可以进一步处理它.对吧? 最佳答案

ruby-on-rails - 如何将 RSPEC 配置为从不在 RAILS_ENV 生产环境中运行

由于我所做的更改,我试图运行一些测试...所以我运行了RAILS_ENV=productionbundleexecrspec这是非常愚蠢的事情,因为rspec(测试)被配置为截断所有表,而这正是在生产中发生的事情!你可以想象后果有没有一种方法可以将rspec配置为在RAILS_ENV=production时永不运行,这样就永远不会发生在任何人身上。还有哪些其他建议或良好做法可以用来避免此类错误更新:我为rspec-rails团队创建了一个问题,他们刚刚提交了一个更改来解决这个问题https://github.com/rspec/rspec-rails/pull/1383/files

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 - 如何更改/usr/bin/env?

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

css - Ruby 无法找到 Foundation/foundation-global?

昨天,我决定在我的一个网络应用程序上试用Foundation。一切正常,就像我在localhost中一样,但是当我将新更改推送到我的EC2实例时,继续遵循ZurbFoundation说明,我遇到了这个错误:Sass::SyntaxErrorinHome#indexShowing/var/www/brain_db/app/views/layouts/application.html.erbwhereline#18raised:Filetoimportnotfoundorunreadable:foundation/foundation-global.Loadpath:Sass::Rails

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

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

ruby-on-rails - 是否可以将 globalize3 添加到外部 ActiveRecord 模型类?

我有一个项目,我正在为其使用globalize3gem以允许使用多种语言。在我自己的模型中,我只需添加'translatesfield1,field2,etc.'和适当的迁移,一切都很好。问题是我还有一些依赖于外部gem的功能。对于其中一些模型,我也想添加全局化。我没有模型的代码可以像我对其他模型那样直接修改。重新打开模型似乎不起作用。有没有办法将翻译行添加到我无法直接访问的模型?我正在使用Rails3.1和Ruby1.9.2以防万一。 最佳答案 您能否提供gem的名称和该gem的模型?类是否在模块下命名空间?如果是这样,您可能没有

ruby - "pollute the global namespace"是什么意思?

在ruby​​中,一些gems选择“污染全局命名空间”。这是什么意思?我如何才能看到它发生在哪里?为什么gem需要这样做?当面对污染全局命名空间和冲突的两个gem时,当我选择“隔离”一个时,我要做出哪些权衡?例如:我正在使用两个污染全局命名空间的gem:pry和gli所以我无法再将我的binding.pry放在我想要的地方。一个solution就是将整个cli包装在一个模块中:moduleWrapperincludeGLI::Appextendselfprogram_desc"..."...exitrunARGVend现在我可以在任何需要的地方使用我的binding.pry。为什么这样

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