我有模型板的层次结构(使用祖先gem实现).
我想要有两个模型,而不是一个模型和一些范围:根级别元素的板(祖先列值为nil)和其余的类别(祖先列值不是nil).他们会使用相同的桌面板.
我怎么能这样做?
解决方法
您可以使用set_table_name或self.table_name明确定义模型表,具体取决于您的rails版本.您还可以使用default_scope为每个针对此模型的查询定义默认范围,因此两者的组合应该是您要搜索的内容:
class Category < AR:Base self.table_name = 'boards' default_scope where('boards.ancestry IS NOT NULL') end