Ruby-对象类的别名

Ruby-对象类的别名,ruby,class,object,alias,Ruby,Class,Object,Alias,对不起我的英语 我的代码 class MyClass NewFood = Food def index @items = NewFood.all end end @items。首先是一个食物对象,但我想得到一个新的食物对象 有什么帮助吗?说你想要一个NewFood对象是没有意义的。只有两类:MyClass和Food。常量MyClass::NewFood只指向Food;仅仅因为您定义了该常量,并不意味着您可以期望Food类的实例开始表现出不同的行为,并说它们的类是NewF

对不起我的英语

我的代码

class MyClass

  NewFood = Food

  def index
    @items = NewFood.all
  end
end
@items。首先
是一个食物对象,但我想得到一个新的食物对象


有什么帮助吗?

说你想要一个
NewFood
对象是没有意义的。只有两类:
MyClass
Food
。常量
MyClass::NewFood
只指向
Food
;仅仅因为您定义了该常量,并不意味着您可以期望
Food
类的实例开始表现出不同的行为,并说它们的类是
NewFood

你能缩小镜头告诉我们大局是什么吗?你想完成什么?你想解决什么现实问题?我们可能会提供更好的解决方法。

举个例子:

class Foo
  @@instances = []

  def initialize(value)
    @value = value
    @@instances << self
  end

  def self.all
    @@instances
  end
end

class Bar
  NewFoo = Foo.dup

  def index
    @items = NewFoo.all
  end
end

# Now Bar::NewFoo will instantiate it's own objects
Bar::NewFoo.new(5)
Bar::NewFoo.new('fish')
Bar.new.index
=>  [#<Bar::NewFoo:0x00000002f33cf0 @value=5>,
     #<Bar::NewFoo:0x00000002f65958 @value="fish">]
class-Foo
@@实例=[]
def初始化(值)
@价值=价值
@@实例