草庐IT

call_with_each

全部标签

ruby - Ruby 中的 str.each 不工作

我正在学习Ruby。我在http://ruby-doc.org/core/classes/String.html找到了方法String#each.当我尝试使用它时...irb(main):001:0>"hello\nworld".each{|s|ps}NoMethodError:undefinedmethod`each'for"hello\nworld":String...但我得到了NoMethodError。我使用的是Ruby1.9.1p253,所以我认为我使用的不是旧版本。怎么回事? 最佳答案 Ruby1.9在String类上不

ruby-on-rails - rails 4 : How to use includes() with where() to retrieve associated objects

我不知道如何使用.where()检索关联模型数据的方法。在此示例中,项目belongs_to用户...classProjectparams[:id]}).firstendend在App/views/projects/invite.html.erg返回:---!ruby/object:Projectattributes:id:22name:SomeProjectNamebelongs_to:1instructions:Blablablaactive:truemax_duration:2max_videos:created_at:2013-08-2615:56:50.000000000Zu

ruby - 使用 Proc#call 时为自己提供值(value)

在Ruby中使用Proc#call调用lambda函数时,self总是以定义函数时的值结束,而不是调用函数时的值,例如:$p=lambda{self}classDummydeftest$p.callendendd=Dummy.new>d.test=>main调用test返回main,当我打算返回的是#-Dummy的实例,这是self的值在我调用$p的代码中.在Javascript中,我只是将我想成为“被调用者”的对象作为第一个参数传递给call。.Ruby中是否有这样的功能,允许我设置任意对象,或者至少设置当前值self,作为self的新值当我调用Proc?

ruby-on-rails - 如何测试依赖: :destroy with RSpec?

我想测试我的User模型关联has_many:projects,dependent::destroy现在已经走了这么远:it"destroysdependentprojects"douser=FactoryGirl.build(:user)project=FactoryGirl.build(:project)user.projects但这给出了一个错误:Failure/Error:expect(Project.count).tochange(-1)ArgumentError:`change`requireseitheranobjectandmessage(`change(obj,:ms

ruby-on-rails - ruby 正则表达式错误 : incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string)

我遇到了两个错误,都与编码有关并且都相关。我在启动WEBrick时遇到的第一个错误(技术上是警告):/Users/USERNAME/example/config/initializers/bb-ruby.rb:54:warning:invalidUnicodeProperty\P:/\:\-?\P/它所指的行是:/\:\-?\P/,这只是一些正则表达式,最终是这个block的一部分:@@tags['Razzing']=[/\:\-?\P/,'','Razzing',':P',:razzing]然后,我在解析一些字符串时也得到了以下错误(大概是由于同一行)...Encoding::Com

ruby-on-rails - 错误 : Attempt to call private method

来自C风格语法的悠久历史,现在正在尝试学习Ruby(onRails),我一直在分享它的习语等问题,但今天我遇到了一个我没想到的问题有问题,但我看不到必须就在我面前的是什么。我有一个Binary类,它包含一个私有(private)方法,用于从路径值派生URI值(uri和路径是该类的属性)。我从Binary.upload()中调用self.get_uri_from_path(),但我得到:Attempttocallprivatemethod模型的片段如下所示:classBinary我是不是打错电话了?我是否遗漏了其他更基本的东西?目前,唯一调用Binary.get_uri_from_pat

ruby - each_with_index_do 索引从 1 开始

我在Rails应用程序的View上使用ruby​​迭代器,如下所示:...我想加上1..而不仅仅是说:@document.data会得到让上面的索引从1开始的技巧。但是,遗憾的是,上面的代码索引仍然是0到data.length(实际上是-1)。那么我做错了什么,我需要索引等于1-data.length...不知道如何设置迭代器来执行此操作。 最佳答案 除非你使用像1.8这样的旧Ruby(我认为这是在1.9中添加的,但我不确定),你可以使用each.with_index(1)来获得1-基于枚举器:在你的情况下它会是这样的:...

关于Document mapping type name can‘t start with ‘_‘, found: [_update]

在修改elasticsearch时,用_update进行局部修改,修改失败,报错{    "error": {        "root_cause": [            {                "type": "invalid_type_name_exception",                "reason": "Document mapping type name can't start with '_', found: [_update]"            }        ],        "type": "invalid_type_name_exce

ruby-on-rails - Ruby/Rails - .each 迭代器在循环结束时打印整个数组

这个问题在这里已经有了答案:WhatisthedifferencebetweeninERBinRails?(7个答案)关闭3年前。我认为我正在尝试做的事情非常简单,而且我真的不确定为什么这不起作用。我正在使用Rails3。本质上,我只是想从现有模型的列中选择不同的值,然后将它们全部打印出来。在大多数情况下,这是可行的,但在我看来,.each循环也会在循环结束时打印整个数组。(我有一个名为景点的模型,每个景点都有一个类别(现在为简单起见,类别在数据库中硬编码)。这是吸引力模型和定义的类方法“all_categories”...classAttraction这是吸引力Controllerc

ruby - next 与 if 在 .each 循环中?

我正在用Ruby进行文本处理。基本上,我必须实现一个简单的状态机(带有一个字符后视)。我现在的代码是这样的:text.each{|c|............if@state!=:some_statenextend#processingstuffforifin:some_statemode...............}这样合适吗?或者它应该像这样实现:text.each{|c|............if@state==:some_state#processingstuffforifin:some_statemode...............end}有正确的方法还是只是偏好?哪个