jjzjj

string_index

全部标签

ruby - 在 Ruby 中,String() 和 #to_s 有什么区别

String(1.1)==(1.1).to_s=>trueString(1.1)===(1.1).to_s=>true这两种强制方式有区别吗?如果可以,你能演示一下吗? 最佳答案 docsfortheStringmethod说:ConvertsargtoaStringbycallingitsto_smethod.所以通常它们是相同的,但也有一些差异——尽管您不太可能真正看到它们。String()检查其参数的类,如果它还不是String,则对其调用to_s。直接调用to_s意味着无论如何都会调用该方法。考虑类:classMyStrin

ruby-on-rails - 为什么 String#gsub 的内容加倍?

s="#main='quotes's.gsub"'","\\'"#=>"#main=quotes'quotes"这似乎是错误的,我希望得到"#main=\\'quotes\\'"当我不使用转义字符时,它会按预期工作。s.gsub"'","*"#=>"#main=*quotes*"所以一定有转义的事情。使用ruby1.9.2p290我需要用反斜杠和引号替换单引号。更多的不一致:"\\'".length#=>2"\\*".length#=>2#Asexpected"'".gsub("'","\\*").length#=>2"'a'".gsub("'","\\*")#=>"\\*a\\*"(

ruby - 是否有 Ruby string#blank?方法?

String#blank?非常有用,但存在于Rails中,而不存在于Ruby中。Ruby中是否有类似的东西来替换:str.nil?||str.empty? 最佳答案 据我所知,普通Ruby中没有这样的东西。您可以像这样创建自己的:classNilClassdefblank?trueendendclassStringdefblank?self.strip.empty?endend这将适用于nil.blank?和a_string.blank?您可以将其扩展(就像rails一样)用于true/false和一般对象:classFalseCl

ruby - 什么是枚举器对象? (使用 String#gsub 创建)

我有一个属性数组如下,attributes=["test,2011","photo","198.1x198.1cm","Photo:ManuPKFullScreen"]当我这样做时,artist=attributes[-1].gsub("Photo:")partist我在终端中得到以下输出#想知道为什么我得到一个枚举器对象作为输出?提前致谢。编辑:请注意,我做的不是attributes[-1].gsub("Photo:",""),而是attributes[-1].gsub("Photo:")所以想知道为什么枚举器对象返回到这里(我期待一条错误消息)以及发生了什么。?ruby-1.9.2

arrays - Ruby : Choosing between each, 映射、注入(inject)、each_with_index 和 each_with_object

当我多年前开始编写Ruby时,我花了一段时间才理解each之间的区别。和map.当我发现所有其他的时,情况只会变得更糟Enumerable和Array方法。借助官方文档和manyStackOverflowquestions,我慢慢开始明白那些方法做了什么。不过,这是我花了更长时间才理解的内容:我为什么要使用一种或另一种方法?有任何指导方针吗?我希望这个问题不会重复:我对“为什么?”更感兴趣。比“什么?”或“如何?”,我认为它可以帮助Ruby新手。 最佳答案 一个更tl;dr的答案:Howtochoosebetweeneach,map

ruby - 如何找到多维数组的 .index

尝试了网络资源,但没有任何运气和我的可视化快速入门指南。如果我有二维/多维数组:array=[['x','x','x','x'],['x','S','','x'],['x','x','x','x']]printarray.index('S')itreturnsnil然后我去输入:array=['x','S','','x']printarray.index('S')它返回我正在寻找的值1我的第一个猜测是在.index()中调用错误,它需要两个参数,一个用于行和列?无论如何,如何使.index为多维数组工作?这是解决我的小迷宫问题的第一步 最佳答案

ruby-on-rails - `merge' :string <%= form_for %> helper 的未定义方法 '####'

我有一个表单,在发布时呈现另一个表单。我想做的是将参数从第一种形式传递到第二种形式的某些隐藏字段中。第二种形式是使用form_for形式助手,而我试图做的是让它接受传递给它的参数。表单如下所示:"btnbtn-largebtn-success"%>当我做类似的事情时这个Action给我错误:NoMethodErrorinFind_numbers#createShowingC:/Sites/dentist/app/views/phones/new.html.erbwhereline#17raised:undefinedmethod`merge'for"1231231234":String

ruby - 无法将 Symbol 转换为 String

我有以下Ruby代码,直接取自GettingStartedwithRails指南defcreate@post=Post.new(post_params)@post.saveredirect_to@postendprivatedefpost_paramsparams.require(:post).permit(:title,:text)end当我运行上面的Create时,出现以下错误。can'tconvertSymbolintostring 最佳答案 您似乎正在尝试使用强参数。你得到这个错误cannotconvertsymbolint

ruby - 在 String 子类上覆盖 =~ 方法会产生不一致

我为String的子类覆盖了=~方法:classMyString重写的方法在某些情况下被正确调用:r=/abc/s=~r#=>"Overriddenmethod."s.send(:=~,r)#=>"Overriddenmethod."s.send(:=~,/abc/)#=>"Overriddenmethod."而在其他情况下它被绕过,而是调用String#=~:s=~/abc/#=>0s=~(/abc/)#=>0我可以在Ruby1.8.7、2.1.0上重现这些结果。有人知道为什么会这样吗?是错误吗? 最佳答案 在String#=~的

ruby - 动态模块 : Querying tables with secondary index

我正在使用gemaws-sdk-ruby查询看起来像这样的表:hk(Hashkey)|guid(Rangekey)|Timestamp(SecondaryRangeindex)|otherattributesaaaa|50|2013-02-04T12:33:00Z|aaaa|244|2013-04-22T04:54:00Z|aaaa|342|2013-05-18T06:52:00Z|bbbb|243|2013-06-21T13:17:00Z|我想要做的是获取在特定日期之后创建的所有“aaaa”行。例如:AWS.config(access_key_id:'xxx',secret_acce