草庐IT

multiple-instances

全部标签

ruby "instance variable not initialized"警告

在用ruby​​编写一些“学习语言”代码时,作为linkedList实现的一部分,我遇到了这个警告:在“添加”方法中,如果头部不存在则创建它,即defadd(value)new_node=LinkedListNode.new(value)if!@head@head=new_nodeelseself.find{|node|node.next==nil}.next=new_nodeendend然后我收到警告.../linked_list.rb:13:warning:instancevariable@headnotinitialized如何摆脱这个警告?这样做的惯用方法是什么?

ruby-on-rails - rails : Model instance method or helper method?

按照惯例,应将以下定义为我的模型的实例方法还是辅助方法?#app/models/user.rbclassUser或#app/helpers/users_helper.rbmoduleUsersHelperdeffull_name"#{@user.first_name}#{@user.last_name}"endend非常感谢。 最佳答案 选择第一个(保留在模型中),也是因为您可能想做其他事情,比如组合索引:) 关于ruby-on-rails-rails:Modelinstancemeth

ruby:instance_eval 一个文件,同时在堆栈跟踪中维护文件:行?

如果我这样做defeval_file(file)instance_evalread(file)end然后,一旦文件内的方法/block之一发生某些事情,我所看到的就是“eval_file”中的(eval):20。当我对许多文件使用eval_file时,很难判断异常来自哪个文件(异常发生在eval之后,使用方法时)有什么方法可以让我看到实际的文件和行号吗? 最佳答案 从thedocumentation可以看出,BasicObject#instance_eval(实际上还有所有其他*_eval)将简单地报告您告诉它的任何文件名和行号:M

ruby-on-rails - 重新归档 gem : multiple file uploads

我正在使用Refile和Rails4。我正在按照他们的教程进行multipleimageupload.每个帖子可以有多个图像。我的模型看起来像这样:后.rb:has_many:images,dependent::destroyaccepts_attachments_for:images,attachment::file图片.rb:belongs_to:postattachment:file我可以上传文件,使用:但是当我尝试检索像这样的图像时:我得到错误:undefinedmethodfilefor#如何使用多张图片上传来检索带有refile的图片? 最佳答案

ruby - Ruby 模块包含为什么不是真正的 'multiple inheritance' 以及 Ruby 风格如何避免与多重继承相关的问题?

据说Matz说“mixins几乎可以做多重继承做的所有事情,而没有相关的缺点”(Matz的话)。首先,为什么Ruby模块包含不是“多重继承”?在我看来,模块和类之间的区别很小。当模块用作父类(superclass)时,不能实例化模块这一事实是无关紧要的。我也知道,连续的模块包含形成了一个从类向上延伸的继承链(不是树)。但是,对我来说,这不足以将它与“多重继承”区分开来,因为Python多重继承系统也“线性化”了父类(superclass)链(使用C3algorithm),只是Ruby的“线性化”过程要简单得多。那么,Ruby模块混入与Python等语言中的多重继承究竟有什么区别呢?为什

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-on-rails - Capistrano::Configuration:Class 的未定义方法 `instance'

我正在尝试在Rails应用程序中首次启动并运行Capistrano。我有一台运行Ubuntu12.04、nginx、unicorn和rails的linux服务器,但是,我似乎遇到了一些问题。我还使用RVM使用Capistrano3.0.0、rails3.2.14、bundler1.4.0和ruby​​1.9.3p448。我只设置了一个生产阶段,此时我只关心Capistrano与我的服务器通信并从github推送我的代码(目前还没有迁移和捆绑等)。当我使用下面的设置尝试命令capproductiondeploy:check或capproductiondeploy:setup(这似乎已被弃

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

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

Ruby block 、procs 和 instance_eval

我最近尝试做类似的事情:a="somestring"b=Proc.new{upcase}a.instance_evalb这给出了错误:TypeError:can'tconvertProcintoString但这行得通:defb(&block)"somestring".instance_eval&blockendb{upcase}进一步了解此方法:defb(&block)"somestring".instance_evalblockend产生相同的ProctoString错误。所以...我对方block的理解是它们只是过程。但是显然,使用这个&符号有一些特别之处......有人能给我解释

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