我有一个抽象类:
class AbstractBrowsable < ActiveRecord::Base
self.abstract_class = true
attr_accessible :heading
[...]
def get_following(count)
AbstractBrowsable.where("heading > ?", self.heading).order('heading ASC').limit(count)
end
end
它有一些像上面这样的通用查询,所以在子类中我需要设置表名,例如
class Subject < AbstractBrowsable
AbstractBrowsable.table_name = "subjects"
end
我可以使它工作的“唯一”方式如上所示,即AbstractBrowsable.table_name = "subjects"
而不是self.table_name = 'subjects'
. 这对我来说似乎很可疑,我的 Google-Fu 只使用self.
. 这可以吗,否则我错过了什么?
如果你没有猜到,我是 Ruby/Rails 的新手;非常感谢任何帮助。我的 Rails 版本是 3.2.13,Ruby 是 1.9.3。