jjzjj

constants

全部标签

ruby - 列出模块在 Ruby 中声明的所有类型

如何在Ruby中列出模块声明的所有类型? 最佳答案 使用Module模块中定义的constants方法。来自Ruby文档:Module.constants=>arrayReturnsanarrayofthenamesofallconstantsdefinedinthesystem.Thislistincludesthenamesofallmodulesandclasses.pModule.constants.sort[1..5]produces:["ARGV","ArgumentError","Array","Bignum","Bi

ruby-on-rails - 名称错误 : uninitialized constant Faker

我正在尝试在Rails4中为我的数据库运行一个简单的bundleexecrakedb:seed。但是,在运行它时,我得到以下输出:********-C02MGBVJFD57:myapp***********$bundleexecrakedb:seedYourGemfileliststhegemfactory_girl_rails(>=0)morethanonce.Youshouldprobablykeeponlyoneofthem.Whileit'snotaproblemnow,itcouldcauseerrorsifyouchangetheversionofjustoneofthem

ruby-on-rails - RAILS_ROOT 要求?

我正在尝试访问位于/lib目录中的文件中的RAILS_ROOT常量,但我无法访问(未初始化的常量错误)。我需要做些什么才能做到这一点吗? 最佳答案 是的,你应该需要environment.rb:requireFile.dirname(__FILE__)+'/../config/environment.rb'putsRAILS_ROOT和Rails.root代替。 关于ruby-on-rails-RAILS_ROOT要求?,我们在StackOverflow上找到一个类似的问题:

ruby - 如何找到在 Ruby 中定义常量的位置?

使用pry,通过edit-method命令可以非常简单地找到定义方法的位置并查看源代码。然而,类本身没有对应关系。当该类本身没有定义任何方法时,很难通过pry找到来源。类是常量,所以这相当于询问在哪里可以找到定义特定Ruby常量的源代码。非常感谢。 最佳答案 在ruby​​中,$"保存所有通过Kernel.load加载的文件名。所以你可以尝试这样的事情:constant=User$".detect{|load_path|load_path.include?(constant.to_s.underscore)}注意:underscor

ruby-on-rails - Rails 中的常量值

我有一些数据想存储在我的Rails应用程序中的某个位置,因为我用它来生成表单字段、检查提交的表单以确保其值有效等。基本上,我希望将数据存储在一个位置,因为我在多个地方使用它。之前,我在我的Controller中定义了一个initialize方法并在该方法中初始化实例变量,例如@graph_types=['bar','line']。这似乎是个坏主意,因为实际上所有的initialize都被用于(初始化这些值)并且实例变量可以稍后更改,这是我不想要的。现在,我在我的Controller中的任何方法之外定义常量,就在我的过滤器之后的顶部,然后我卡住它们,例如GraphTypes=['bar'

ruby-on-rails - Rails 自动加载完全大写的名称,如 API

我有一些结构/lib/dokuwiki.rb/lib/dokuwiki/exception.rb/lib/dokuwiki/api/connection.rbdokuwiki.rbrequire'dokuwiki/exception.rb'moduleDokuwiki...dokuwiki/api/connection.rbmoduleDokuwikimoduleAPIclassConnection...现在,当我尝试从Controller调用Dokuwiki::API::Connection.new(没有任何require)时,Rails默认常量自动加载失败。我相信这是因为::API

ruby-on-rails - 在 Rails View 中访问特定于模型的常量

我正在运行Rails4。我有一个名为Challenge的模型,在我的数据库中,我以0-4的形式存储每个挑战的status。但0-4不是很语义化,所以我想定义一些变量(我假设是常量),这样在任何Controller或View中我都可以通过调用常量来访问数字:#Challenge.rbclassChallenge我想在我的View中访问这些:#challenge/_details.html.erbChallengeisclosed,broheim!但是我的View不想渲染。uninitializedconstantActionView::CompiledTemplates::CLOSED设

ruby - 让父类的方法访问子类的常量

例如:classAnimaldefmake_noiseprintNOISEendendclassDog我如何实现上述目标?目前它说uninitializedconstantAnimal::NOISE 最佳答案 我认为您并不是真的想要一个常量;我认为你想要类上的实例变量:classAnimal@noise="whaargarble"class"whaargarble"d.make_noise#=>"bark"Dog.noise="WOOF"d.make_noise#=>"WOOF"a.make_noise#=>"whaargarble

ruby-on-rails - Rails 3.0 & Ruby 1.9.2rc : Rake commands return 'already initialized constant' & stack level too deep errors. 任何想法

我正在尝试在Ubuntu10.04上运行Rails3beta4和Ruby1.9.2rc。它最初有效,但在完成我的第一个bundleinstall/package之后,我现在在所有Rails项目中都遇到以下错误。即使是基本的“railsnewtestproject”后跟一个rake也会显示错误消息。简而言之,我很难过。非常感谢任何有关可能导致此问题的帮助。我唯一注意到的事情——可能相关也可能不相关——是~/.bundle文件中的目录是ruby​​/1.9.1。我的机器上没有安装1.9.1-只有1.9.2rc。ruby-v带回1.9.2(in/home/john/Websites/sand

ruby - 如何在加载文件时禁用重新定义常量的警告

有没有办法在加载特定文件时禁用warning:alreadyinitializedconstant? 最佳答案 问题的解决方案取决于问题的成因。1-您正在更改之前在代码中某处设置的常量的值,或者试图定义一个与现有类或模块同名的常量。解决方案:如果事先知道常量的值会发生变化,就不要使用常量;不要定义与类/模块同名的常量。2-您出于充分的理由想要重新定义常量,但没有收到警告。有两种选择。首先,您可以在重新定义常量之前取消定义常量(这需要一个辅助方法,因为remove_const是一个私有(private)函数):Object.modul