草庐IT

environment-variables

全部标签

ruby-on-rails - 在 Rails 应用程序中存储全局变量的最佳位置在哪里?

我想知道是否有关于在Rails应用程序中存储全局设置的最佳实践。我的意思是:我定义了一些可能会改变的全局变量,但不太可能,而且将它们存储在数据库中似乎不合适,因为它们被使用得太多了。例如,我有SYSTEM_EMAIL&SYSTEM_EMAIL_SIGNATURE&SYSTEM_STORAGE_ROOT。现在我将它们保存在environment.rb中,但我不确定这是否是存储它们的正确位置。谢谢编辑:已接受的答案仍然是适当的,但我后来开始使用https://github.com/markbates/configatron,还有其他选项,但我最喜欢configatron。

ruby - @instance_variable 在 ruby​​ block 内不可用?

使用以下代码:defindex@q=""@q=params[:search][:q]ifparams[:search]q=@q@search=Sunspot.search(User)dokeywordsqend@users=@search.resultsend如果使用@q而不是q,搜索总是返回空查询("")的结果。为什么是这样?@q变量对do...endblock不可用吗? 最佳答案 这取决于block的调用方式。如果使用yield关键字或Proc#call方法调用它,那么您将能够在block中使用您的实例变量。如果使用Object

ruby -/usr/bin/env ruby​​_noexec_wrapper 失败,没有文件或目录

当我尝试将chef-solr作为服务启动时,它因以下错误而失败#servicechef-solrstartStartingchef-solr:/usr/bin/env:ruby_noexec_wrapper:Nosuchfileordirectory[FAILED]但是当我从命令行手动运行它时它运行成功#chef-solr-d-c/etc/chef/solr.rb-L/var/log/chef/solr.log-P/var/run/chef/solr.pid#echo$?0#ps-ef|grepchefroot269111204:19?00:00:01java-Xmx256M-Xms2

Ruby 动态类。如何修复 "warning: class variable access from toplevel"

我正在尝试编写一个程序,根据从文件中读取的配置动态定义ruby​​类。我知道我可以使用Class.new来做到这一点。这是一个示例程序:x=[1,2,3]Test=Class.newdo@@mylist=xdeffooputs@@mylistendendTest.new.foo当我运行它时,我得到以下输出(使用ruby​​1.9.3p0运行):c:/utils/test.rb:4:warning:classvariableaccessfromtoplevelc:/utils/test.rb:7:warning:classvariableaccessfromtoplevel123Does

ruby-on-rails - 助手设计 : could not find the `Warden::Proxy` instance on request environment

我尝试将Devise用于我的Rails应用程序。我可以注册并登录,但是当我转到其他页面“构建”时,出现以下错误:Devise::MissingWardeninHome#showDevisecouldnotfindtheWarden::Proxyinstanceonyourrequestenvironment.MakesurethatyourapplicationisloadingDeviseandWardenasexpectedandthattheWarden::Managermiddlewareispresentinyourmiddlewarestack.Ifyouareseeing

ruby-on-rails - 如何在 database.yml 文件中设置 rails 环境变量?

在我的本地机器上,我想为database.yml文件中的所有敏感信息设置环境变量。我的文件如下所示:default:&defaultadapter:mysql2encoding:utf8pool:5username:password:socket:development:test:username:password:我以为我可以在我的.bashrc文件中设置这些环境变量,但这似乎不起作用。我的.bashrc文件如下所示:exportDATABASE_USERNAME="root"exportDATABASE_PASSWORD="*****"exportSOCKET="/var/run/

ruby - 总新手 : Instance variables in ruby?

请原谅新手问题,但为什么@game_score总是零?#bowling.rbclassBowling@game_score=0defhit(pins)@game_score=@game_score+pinsenddefscore@game_scoreendend 最佳答案 让我们看一下代码,好吗?#bowling.rbclassBowling@game_score=0#(1)此时(1),我们仍在classBowling中。记住:类和其他对象一样只是对象。因此,此时您将0分配给类对象Bowling的实例变量@game_score。de

ruby-on-rails - Ruby on Rails : pretty print for variable. hash_set.inspect ...有没有办法在控制台中漂亮地打印 .inspect ?

我发现自己在我的功能测试中做了很多puts.inpsects以确保我知道数据是如何格式化的......但是当散列对象中的每个条目之后没有新行时散列很难读取.无论如何,也许是一个gem?,pretty-print哈希?所以它看起来像这样:{entry1=>{entrey1.1=>1,entry1.2=>3},entry2=>3}而不是:{entry1=>{entrey1.1=>1,entry1.2=>3},entry2=>3}?谢谢! 最佳答案 你可以为此使用awesome_printgem。https://github.com/mi

ruby - 为什么要在 Ruby 中避免使用 @@class_variables?

我知道有人说在Ruby中应该避免使用类变量(例如@@class_var),而应该在类范围:defMyClass@@foo='bar'#Shouldnotdothis.@foo='bar'#Shoulddothis.end为什么在Ruby中不赞成使用类变量? 最佳答案 类变量经常因为它们在继承方面有时令人困惑的行为而经常受到诽谤:classFoo@@foo=42defself.foo@@fooendendclassBar23Bar.foo#=>23如果你改用类实例变量,你会得到:classFoo@foo=42defself.foo@f

Ruby 类 : initialize self vs. @variable

有人可以解释在定义类时初始化“self”和使用@variables之间的区别吗?举个例子classChild所以在这种情况下,我不能用@stuff替换self.stuff吗?有什么不同?此外,super()只是意味着Parent初始化方法中的任何内容,Child应该直接继承它,对吗? 最佳答案 一般来说,不是,self.stuff=stuff和@stuff=stuff是不一样的。前者在对象上调用stuff=方法,后者直接设置实例变量。前者调用一个可能是公共(public)的方法(除非在类中特别声明为私有(private)),而后者总