我应该如何在Ruby中继承变量?
我正在努力实现: 类模型 表=未设置 self.getid sql=从{table}中选择*,其中id={id} 终止 终止 这是我的通用模型类,带有一个示例函数 类用户模型 表=用户 终止 我希望将通用sql函数保留在父类中,因为它们不是每个实例都需要的。每个类声明都需要在运行get函数时使用的表 关于实例变量,您不需要实例[sic]调用get的类。类变量由层次结构中的类共享,因此这也不起作用我应该如何在Ruby中继承变量?,ruby,oop,Ruby,Oop,我正在努力实现: 类模型 表=未设置 self.getid sql=从{table}中选择*,其中id={id} 终止 终止 这是我的通用模型类,带有一个示例函数 类用户模型 表=用户 终止 我希望将通用sql函数保留在父类中,因为它们不是每个实例都需要的。每个类声明都需要在运行get函数时使用的表 关于实例变量,您不需要实例[sic]调用get的类。类变量由层次结构中的类共享,因此这也不起作用 我应该如何使用类变量?我该怎么做?在java中,每个类在构造函数上方分配一个受保护的变量。您可以这样
我应该如何使用类变量?我该怎么做?在java中,每个类在构造函数上方分配一个受保护的变量。您可以这样做。在模型类上引发硬错误将是确保表在子类上实现的另一个好处
而且,通过使用该类,我从未想到过这一点!非常聪明,谢谢你提供的解决方案。所以我实现了这个,它可以正常工作,但是我现在不知道如何处理非类方法需要访问表函数的情况。@Gibbo每个实例都可以通过self.class访问自己的类。因此,您可以通过self.class.table从实例方法调用您自己类的table方法。非常感谢我的朋友,这工作正常。希望我能从中进一步学习,帮助我的代码干涸。
class Model
class << self
def get(id)
"SELECT * FROM #{table} WHERE id = #{id}"
end
private
def table
raise NotImplementedError
end
end
end
class User < Model
class << self
private
def table
"users"
end
end
end