草庐IT

java单例实例化

全部标签

Ruby 并为 Float 实例修改自身

我想更改float实例的self值。我有以下方法:classFloatdefround_by(precision)(self*10**precision).round.to_f/10**precisionendend我想添加round_by!修改自身值的方法。classFloatdefround_by!(precision)self=self.round_by(precision)endend但是我得到一个错误,说我不能改变self的值。有什么想法吗? 最佳答案 您不能更改self的值。它总是指向当前对象,你不能让它指向别的东西。当

ruby-on-rails - 向 Rails 模型实例对象动态添加哈希属性?

有模型classPlaylistModel然后在ControllerAction中有这样的代码PlaylistController但是PlaylistModel中(或播放列表表的架构中)没有定义visited属性!看起来一个新属性正在动态添加到对象中。这是正在发生的事情吗?所有这些功能在哪里定义/我在哪里可以阅读更多相关信息。感谢您的帮助! 最佳答案 这是解释的属性setter快捷方式here.它几乎等同于:@item.attributes[:visited]=true 关于ruby-o

ruby - 理解 Ruby 类实例变量

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhydoRubysettersneed“self.”qualificationwithintheclass?有人可以解释以下内容之间的区别,以及为什么它不像人们预期的那样:#version#1classUserdefinitialize(name,age)@name=name@age=ageendend#version#2classUserattr_accessor:name,:agedefinitialize(name,age)@name=name@age=ageendend#version#3class

ruby - 如何在命令行上将实例变量传递给 HAML 模板?

背景我正在尝试测试Rails之外的一些HAML模板的格式。这个想法是在命令行或通过包含的Ruby文件传递​​一些实例变量,将模板呈现为标准输出。我尝试了几种不同的方法但没有成功,如下所述。需要一个Ruby文件例如,给定以下两个文件:HAML模板:“test.haml”!!!%h1TestingHAMLCLI%p=@bar%p=@bazRuby文件:“test.rb”@foo='abc'@bar='123'我希望像haml-r./testtest.haml这样的调用在标准输出上返回一个内插的HTML文件,但它没有。相反,我只得到HTML:TestingHAMLCLI程序化尝试由于这不起作

ruby-on-rails - 相关模型的每个实例的事件管理范围

我对动态事件管理范围有疑问。我正在尝试为我的应用程序中的“项目”的每个“经理”创建一个范围。但是,当创建新经理(或分配给项目)时,范围似乎不会更新,但如果我重新启动服务器,它们会更新。所以代码本身“有效”,但显然不是我想要的方式。我是ruby​​/rails新手,所以我不确定是否需要做一些事情以某种方式“刷新”范围。仅供引用,我在带有ActiveAdmin的HerokuCedar上使用Rails3.2这是有问题的代码(有效但仅在服务器重新启动后引入新的管理器):Manager.find_eachdo|m|scopem.first_namedo|projects|projects.whe

ruby-on-rails - 如何在不首先在 Ruby 中实例化的情况下获取所有子类的列表

如果我有4个具有以下层次结构的类:classMainClass如何在不遍历和创建每个其他类的实例的情况下获得MainClass的子类列表?在新的IRBsession中,我可以进去说irb(main)>MainClass.descendants=>[]但是,如果我遍历并创建每个子类的实例,我将看到以下内容irb(main)>SubClassA.new=>#irb(main)>SubClassB.new=>#irb(main)>SubClassC.new=>#irb(main)>MainClass.descendants=>[SubClassA(...),SubClassB(...),Su

ruby - 单例类会在多线程应用程序中产生问题吗?

这可能是过早的优化,或过早的过度谨慎,但我避免在一些类上使用单例,因为我担心在未来我需要以多线程方式运行我的应用程序,而且单例会造成冲突和困惑。单例在Ruby中是否有这个问题,或者是否有某种内置的命名空间,以便当一个类引用单例时,只返回同一线程上的单例?编辑:澄清这些是可观察的类,当更新时会导致其他正在观察它们的类更新。我不确定这是否是线程安全的,但我知道现在我正在大量传递这些可观察的类,这有点烦人。而且它们看起来确实像是自然的单例类。 最佳答案 这是一个使单线程安全的例子。您必须像对待任何其他具有状态(@things)并且不是不可

ruby - 在 ruby​​ 中获取 attr_accessor/实例变量

所以我知道您可以通过调用#instance_variables获取Ruby中的所有实例变量,但如果它们尚未设置,则它们不会显示。示例classWalrusattr_accessor:flippers,:tusksendw=Walrus.neww.instance_variables#=>[]w.tusks#=>nilw.instance_variables#=>[:@tusks]我想立即访问attr_accessor定义的所有实例变量。w=Walrus.neww.instance_variables#=>[:@tusks,:@flippers] 最佳答案

Ruby:从散列的散列中删除特定键的所有实例

我有一个像这样的散列h={1=>{"inner"=>45},2=>{"inner"=>46},"inner"=>47}如何删除包含键“inner”的每一对?你可以看到一些“内部”对直接出现在h中,而另一些成对出现在h中请注意,我只想删除“内部”对,因此如果我对上述哈希调用我的批量删除方法,我应该得到h={1=>{},2=>{}}因为这些对没有键=="inner" 最佳答案 真的,这就是拒绝!用于:deff!xx.reject!{|k,v|'inner'==k}ifx.is_a?Hashx.each{|k,v|f!x[k]}end

ruby - 在 rspec 测试中填充实例变量

我有一个具有以下初始化方法的类。definitialize(my_var)@my_var=my_varend然后我想测试对@my_var做些什么的方法defsplit@my_var.split(",")end如何在测试它正确返回数组之前更改@my_var?如果没有@my_var的访问器,这是可能的吗? 最佳答案 这听起来不像是正确的做法。Rspec应该测试类和模型的接口(interface)行为——而不是内部实现(无疑是实例变量)。有多种方法可以做到这一点,但您确定不想为该变量设置访问器吗?无论如何,您可以使用my_object.i