草庐IT

private_method

全部标签

ruby - 如何在 Ruby 中使类构造函数私有(private)化?

classAprivatedefinitializeputs"wtf?"endendA.new#stillworksandcallsinitialize和classAprivatedefself.newsuper.newendend完全没有效果那么正确的做法是什么?我想将new设为私有(private)并通过工厂方法调用它。 最佳答案 试试这个:classAprivate_class_method:newendMoreonAPIDock 关于ruby-如何在Ruby中使类构造函数私有(p

ruby-on-rails - Ruby on Rails : alias_method_chain, 究竟是做什么的?

我尝试阅读了各种博客文章,这些文章试图解释alias_method_chain以及使用和不使用它的原因。我特别注意:http://weblog.rubyonrails.org/2006/4/26/new-in-rails-module-alias_method_chain和http://yehudakatz.com/2009/03/06/alias_method_chain-in-models/我仍然看不到alias_method_chain有任何实际用途。谁能解释一下。1-它还在使用吗?2-你什么时候会使用alias_method_chain以及为什么?

ruby-on-rails - 为什么我在安装 PaperClip 时得到一个 "undefined method for ` has_attached_file`?

我刚刚安装了Paperclip插件,但收到以下错误消息,但我不确定原因:NoMethodError(undefinedmethod`has_attached_file'for#):/Users/bgadoci/.gem/ruby/1.8/gems/will_paginate-2.3.12/lib/will_paginate/finder.rb:170:in`method_missing'app/models/post.rb:2app/controllers/posts_controller.rb:50:in`show'它引用了will_paginategem。据我所知,我的PostsC

ruby - class << self vs self.method with Ruby : what's better?

这RubyStyleGuide告诉我们最好使用self.method_name而不是classmethod_name。但是为什么?classTestClass#badclass是否存在性能问题? 最佳答案 class善于将所有类方法放在同一个block中。如果在defself.method中添加方法form则不能保证(除了惯例和一厢情愿的想法)不会有额外的类方法隐藏在文件的后面。defself.method擅长显式声明方法是类方法,而使用class你必须自己去找容器。这些中哪一个对您来说更重要是一个主观决定,并且还取决于诸如有多少其

Ruby:define_method 与 def

作为一项编程练习,我编写了一个Ruby片段,它创建了一个类,实例化了该类中的两个对象,猴子修补了一个对象,并依靠method_missing猴子修补了另一个对象。这是交易。这按预期工作:classMonkeydefchatterputs"Iamachatteringmonkey!"enddefmethod_missing(m)puts"No#{m},soI'llmakeone..."defscreechputs"Thisisthenewscreech."endendendm1=Monkey.newm2=Monkey.newm1.chatterm2.chatterdefm1.screec

ruby-on-rails - Rails 中的 protected 和私有(private)方法

Ruby中的方法可见性(公共(public)、protected和私有(private)方法)在thisblogpost等地方得到了很好的解释。.但在RubyonRails中,由于框架的设置方式,它似乎与在常规Ruby应用程序中略有不同。那么,在Rails模型、Controller、助手、测试等中,什么时候适合/不适合使用protected或私有(private)方法?编辑:感谢您到目前为止的回答。我了解Ruby中protected和private的概念,但我正在寻找更多关于在Rails应用程序的各个部分(模型、Controller、助手、测试)的上下文中使用这些类型的可见性的典型方式

ruby - Ruby 中的私有(private)方法应该放在哪里?

大多数博客或教程或书籍在任何类/模块的底部都有私有(private)方法。这是最佳做法吗?我发现在必要时使用私有(private)方法更方便。例如:publicdefmy_method#dosomethingminion_methodendprivatedefminion_method#dosomethingendpublicdefnext_methodend这样我发现代码更具可读性,而不是不断地上下滚动,这非常令人恼火。这种方法有什么严重的错误吗?在底部使用私有(private)方法是否不仅仅是一种最佳实践和其他东西? 最佳答案

ruby - Ruby 中的私有(private)模块方法

我有一个两部分的问题最佳实践我有一个算法可以使用公共(public)接口(interface)对数据结构执行某些操作它目前是一个包含许多静态方法的模块,除了一个公共(public)接口(interface)方法外,所有静态方法都是私有(private)的。有一个实例变量需要在所有方法之间共享。这些是我能看到的选项,哪个是最好的?:模块带有静态(ruby中的“模块”)方法Class使用静态方法Mixin模块用于包含到数据结构中重构修改该数据结构(非常小)的算法部分,并使其成为调用算法模块静态方法的混合技术部分有什么方法可以制作私有(private)模块方法?moduleThingdefs

ruby - 如何使用 define_method 创建类方法?

如果您尝试以元编程方式创建类方法,这将很有用:defself.create_methods(method_name)#Tocreateinstancemethods:define_methodmethod_namedo...end#Tocreateclassmethodsthatrefertotheargsoncreate_methods:???end我要遵循的答案... 最佳答案 我认为在Ruby1.9中你可以这样做:classAdefine_singleton_method:loudlydo|message|putsmessag

ruby - 你能为 map 提供参数吗(&:method) syntax in Ruby?

您可能熟悉以下Ruby速记(a是一个数组):a.map(&:method)例如,在irb中尝试以下操作:>>a=[:a,'a',1,1.0]=>[:a,"a",1,1.0]>>a.map(&:class)=>[Symbol,String,Fixnum,Float]语法a.map(&:class)是a.map{|x|的简写x.class.在“Whatdoesmap(&:name)meaninRuby?”中阅读有关此语法的更多信息。通过语法&:class,您正在为每个数组元素调用方法class。我的问题是:您可以为方法调用提供参数吗?如果是这样,怎么做到的?比如下面的语法你怎么转换a=[1