我有一个模块,有很多不同的类(分为不同的文件)。每个类都有相同的attr_accessor集,所以我如何重用它而不必重复attr_accessor块呢?
我现在正在做的..。
# dog.rb
module Animals
class Dog
attr_accessor :name, :color, :age
end
end
# cat.rb
module Animals
class Cat
attr_accessor :name, :color, :age
end
end
# rodent.rb
module Animals
class Rodent
attr_accessor :name, :color, :age
end
end我试着这么做却没有运气..。
# animals.rb
module Animals
attr_accessor :name, :color, :age
end我需要通过我的应用程序直接访问这些模块(这是一个Rails应用程序)。例如:Animals::Dog.give_water
发布于 2013-08-08 14:11:21
使用模块Animal是错误的。使用它作为名称空间对您的目的没有任何好处。你应该包括他们。
module Animals
attr_accessor :name, :color, :age
end
class Dog
include Animals
end
class Cat
include Animals
end
class Rodent
include Animals
end或者,您可以将Animal转换为类,然后从该类中派生出子类。
class Animals
attr_accessor :name, :color, :age
end
class Dog < Animals
end
class Cat < Animals
end
class Rodent < Animals
end顺便说一句,一个类已经暗示它可能有多个实例,所以为一个类设置一个复数名称是多余的。而且你在这一点上也不一致。
https://stackoverflow.com/questions/18128197
复制相似问题