草庐IT

symbolication

全部标签

ruby-on-rails - 为什么我会收到此 TypeError - "can' t convert Symbol into Integer”?

我有一个哈希数组。每个条目看起来像这样:-!map:Hashie::Mashname:ConnorHPetersid:"506253404"我正在尝试创建第二个数组,其中仅包含id值。["506253404"]我是这样做的second_array=first_array.map{|hash|hash[:id]}但是我得到了这个错误TypeErrorinPagesController#homecan'tconvertSymbolintoInteger如果我尝试second_array=first_array.map{|hash|hash["id"]}我明白了TypeErrorinPage

java - StringBuffer 是否与 Ruby 中的字符串相同,Symbols 是否与常规 Java 字符串相同?

我刚开始读这本书EloquentRuby我已经读到关于Ruby中的符号的章节。Ruby中的字符串是可变的,这意味着每个字符串都会分配内存,因为内容可以更改,即使内容相同。如果我需要Java中的可变字符串,我会使用StringBuffer。然而,由于常规的Java字符串是不可变的,一个字符串对象可以被多个引用共享。因此,如果我有两个内容为“HelloWorld”的常规字符串,两个引用将指向同一个对象。那么Ruby中Symbols的用途实际上与Java中的“普通”String对象相同吗?优化内存是给程序员的一个特性吗?我在这里写的东西是真的吗?还是我误解了符号的概念?

ruby - 为什么不能在 `singleton` `Fixnum` ,`Bignum` ,`Float` 类对象上定义 ,`Symbol` 方法,但 ` FalseClass` 和 `TrueClass` 可以有?

为什么不能在Fixnum,Bignum,Float,上定义singleton方法Symbol类对象,但是FalseClass和TrueClass可以有吗?C:\>ruby-vruby2.0.0p0(2013-02-24)[i386-mingw32]C:\>irb--simple-promptDLisdeprecated,pleaseuseFiddle11111111111.class#=>Bignumclass'1111.class#=>Fixnumclass'11.11.class#=>Floatclass':name.class#=>Symbolclass'

ruby - 由于符号链接(symbolic link)错误,无法在 Mac OSX 10.8.1 中安装 ruby​​-1.9.2

首先,我尝试了常见的rvm安装。rvm安装1.9.2但是,显示了以下错误:Theprovidedcompiler'/usr/bin/gcc'isLLVMbased,itisnotyetfullysupportedbyrubyandgems,pleaseread`rvmrequirements`.然后我跑rvmrequirements并发现以下输出部分很有用RightnowRubyrequiresgcctocompile,butXcode4.2andlaternolongershipwithgcc.Insteadtheyshipwithllvm-gcc(towhichgccisasyml

ruby-on-rails - 如何在 Capistrano 部署的生产环境中对我的产品图像进行符号链接(symbolic link)?

Here我收到了我的问题的解决方案,每次当我使用Capistrano部署我的SpreeCommerce应用程序时,我的图像都会被删除(它们仍然存在,但文件夹名称错误)并且我必须通过管理员再次添加它们。都在thisGooglegroup在answer对于这个问题,据说符号链接(symboliclink)是解决方案。YouneedtomakesurethatyourRAILS_ROOT/public/spreedirectoryisbeingsymlinkedinfromtheCapistranoshareddirectoryandnotrecreatedeverytimeyoudeplo

ruby - 为什么 Symbol#to_proc 有这种类型的行为?

我找到了这个在Ruby中实现自定义Symbol#to_proc的示例代码:classSymboldefto_procputs"InthenewSymbol#to_proc!"Proc.new{|obj|obj.send(self)}endend它包含额外的“puts...”字符串以确保它不是内置方法。当我执行代码时p%w{davidblack}.map(&:capitalize)结果是:InthenewSymbol#to_proc!["David","Black"]但为什么不是这样呢?InthenewSymbol#to_proc!["David"]InthenewSymbol#to_p

ruby-on-rails - rails 小号 : undefined method `symbolize_keys'

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎与helpcenter中定义的范围内的编程无关。.关闭9年前。Improvethisquestion我有一个Rails3.2.12应用程序,但是当我运行railss时,我收到以下错误:connection_specification.rb:45:in'resolve_hash_connection':undefinedmethod'symbolize_keys'for#(NoMethodError)connection_specification.rb相关方法:defresolve_has

ruby - CSV header_converters : :symbol giving inconsistent results

将RubyCSVfor_each与headers:true,header_converters::symbol结合使用我无法预测生成的标题符号是什么。有时它只是小写并用下划线替换空格,所以"Name"变成:name,但有时它用下划线作为符号的前缀和后缀,所以"Latitude"变为:_latitude_。这是一个相当小的刺激——我可以只查看转换后的行并查看标题是什么,但我想了解它发生的原因(以及我是否可以轻松地阻止它)。我查找了有关header_converters::symbol的文档,但只能发现它将header转换为符号(我知道),而不是如何进行转换。有人可以帮忙吗?

ruby-on-rails - 关于 Symbol 对象的 Ruby 文档具有误导性

我是Ruby的新手,和其他人一样,我无法理解Ruby符号。我知道这个主题已被多次提及,但我相信这篇文章可能与其他文章略有不同。如果没有,我很抱歉。以documentation中的这段代码为例.moduleOneclassFredend$f1=:FredendmoduleTwoFred=1$f2=:FredenddefFred()end$f3=:Fred$f1.object_id#=>2514190$f2.object_id#=>2514190$f3.object_id#=>2514190我的提示是,它让我们认为类、模块或函数与:Fred符号之间存在联系。难怪人们会问“我可以为符号赋值吗

ruby 1.9.3-p0 乘客 "Symbol not found: _ruby_current_thread"

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Rails3.1andRuby1.9.3p125:ruby-debug19stillcrasheswith“Symbolnotfound:_ruby_threadptr_data_type”刚刚更新到1.9.3-p0,更新了我所有的gem等等,但我的应用程序仍然无法启动。乘客错误:Errormessage:dlopen(/Users/username/.rvm/gems/ruby-1.9.3-p0/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle,9):