草庐IT

Super_VLAN

全部标签

ruby-on-rails - 子类化 Controller ,以及何时调用 super

我有很多Controller会有一些类似的行为,例如用户应该登录,需要设置一些范围,需要设置current_account/current_user并缓存权限。我正在考虑使用标准Controller并将其子类化。classMyStandardController我想知道我是否需要/何时调用super? 最佳答案 您不需要在继承自另一个Controller的Controller中调用super;事实上,这样做可能有点奇怪。Super从父类(superclass)中执行一个同名的方法,您可能不会在MyStandardController

ruby - 让 `super` 通过包含的模块调用父类

我有继承类Person的类Boy,并包含模块Bipedal。Person和Bipedal都有#two_legs的版本。moduleBipedaldeftwo_legs(name)puts"#{name}hasexactlytwolimbsusedforwalking."endendclassPersondeftwo_legs(name)puts"#{name}hastwohumanlegs."endendclassBoy因为Bipedal模块包含在Boy中,所以Bipedal#two_legs优先于Person#two_legs.当我在Boy实例上调用super时,模块Bipedal优

ruby - 如何对父类(super class)隐藏方法?

我想隐藏来自第三方gem的父类(superclass)中的一个方法。如果根本不可能调用此方法,我会更愿意,所以不要只是重写它并将正文留空。 最佳答案 我相信这可能是您正在寻找的:undef_method:foo这将阻止对方法foo的任何调用。相比之下,这不会达到同样的效果:remove_method:foo这将从子项中删除该方法,但仍会向上传递继承链。文档:undef_method和remove_method 关于ruby-如何对父类(superclass)隐藏方法?,我们在StackO

Ruby - 仅使用某些参数初始化继承, super ?

最近我一直在研究Ruby,但我似乎找不到问题的答案。我有一个类和一个子类。类有一些initialize方法,子类有自己的initialize方法,应该从它继承一些(但不是全部)变量,并另外将自己的变量添加到子类对象。我的人有@name、@age和@occupation。我的Viking应该有一个@name和@age它继承自Person,并且另外还有@weapon,Person没有。Viking显然不需要任何@occupation,也不应该有。#doesn'tworkclassPersondefinitialize(name,age,occupation)@name=name@age=a

ruby-on-rails - 如何在 Ruby 中调用 super.super 方法

我有以下类(class)classAnimaldefmove"Icanmove"endendclassBird如何在Penguin中调用Animal的移动方法?我不能使用super.super.move。有什么选择?谢谢 最佳答案 可以获取Animal的move实例方法,绑定(bind)到self,然后调用:classPenguin 关于ruby-on-rails-如何在Ruby中调用super.super方法,我们在StackOverflow上找到一个类似的问题:

ruby-on-rails - Ruby/Rails 继承,覆盖子类中父类(super class)中定义的验证器

我有以下rails/paperclip验证器:classImageRatioValidator=geo.widthrecord.errors[attribute]验证器用于父类(superclass)(父类(superclass)不是抽象的,因此可以实例化)和子类。在子类中,我需要更改允许的比率:父类(superclass):classSuperclassvalidates_attachment:logo,:image_ratio=>{:ratio=>{"1:1"=>"28","4:1"=>"50","5:1"=>"40"}}end子类:classSubclass{:ratio=>{"

ruby - 类上下文之外的 super 关键字?

有这个文件,app.rb,它包含以下内容:definitialize(*args)super@action=:addend它不在一个类中。为什么它有一个super关键字?文件是here. 最佳答案 此文件将用于创建新的“轻量级”资源类。定义的方法将被复制到那里而不做任何更改。所以super非常有意义,因为新生成的类将继承自Chef::Resource。查看更多Lightweightresourcesandproviders(LWRP) 关于ruby-类上下文之外的super关键字?,我们

ruby - 如何使用 defined?(super) 和 define_method

当我在传递给迭代器的block中使用define_method时,出于某种原因,defined?(super)永远不会计算为true。请参阅下面的示例。请注意,super(value)是一个有效的调用,即使defined?认为不是这样。classAdefmessage=(val)puts'Asays'+valendendclassB 最佳答案 这是abug在Ruby1.9.3中已在2.0.0-p0中修复,但从未向后移植到1.9.3。报告的错误不完全相同,但是itsfix可能是解决这个问题的原因。这可能是因为defined?和supe

ruby-on-rails - Rspec:使用 super(args) 初始化 Controller 类时,rspec-rails 是否存在问题?

我已经使用Rspec一段时间了,出于某种原因,我在一个名为ReferencesController的Controller上收到错误。错误表明我必须通过以下任一方式指定Controller名称:describeMyControllerdo或describe'aoeuaoeu'docontroller_name:my两种变体我都试过了:describeReferencesControllerdo和describe'refscontroller'docontroller_name:references但是我得到了两个错误!知道可能出了什么问题吗?伯恩斯编辑:由于解决方案的性质,我改写了标题并

ruby - 单元测试中应该父类(super class)不匹配

尝试使用shoulda和rails3编写一个简单的单元测试。test/unit/user_test.rbclassUserTest:create)shouldvalidate_presence_of(:handle,:email)shouldvalidate_confirmation_of(:password)shouldvalidate_length_of(:handle,:within=>6..15)shouldvalidate_uniqueness_of(:handle)shouldvalidate_format_of(:handle,:with=>/\A\w+\z/i)shou