所以我创建了一个代表文章库的数据库模式。但是,每篇文章都可以有很多翻译。因此,有一篇基础文章,其中包含该文章的共享信息和翻译。我目前有一篇文章表/类和翻译表/类。每篇文章都有很多翻译等。我的问题是,是否有一种很好的方法来委派方法并使用这个系统查找文章。
我应该在文章类上创建自己的工厂方法来检索正确的翻译子项吗?我应该在翻译中添加委托人,以便我可以回到父母那里并获得有关该文章的共享信息吗?
另一个重要问题是named_scopes会去哪里。他们应该继续撰写文章还是翻译?我试图想出一个最好的方法来抽象出一篇文章和它的翻译之间的区别,并且只是有一堆文章。想法?
谢谢!
答案 0 :(得分:0)
我认为我会使用范围来获取基于语言的文章和翻译。就像在文章模型中那样:
scope :translation, lambda { |language|
includes(:translation).
where("translations.language = ?", language )
}