0
我用Mongoid和Rails 3,和我有以下的单表继承:在Mongoid中,如何排除基本控制器中的继承模型对象?
class Post
include Mongoid::Document
field :title, type: String
field :content, type: String
end
有一个模型“第”从帖子继承:
class Article < Post
field :source, type: String
end
我是新手尝试STI 。我了解到“一个控制器”对于基础和继承模型来说是一个很好的设计。所以我有PostsController这样
class PostsController < ApplicationController
def index
@type = param[:type] # type is passed from the route.rb
@posts = Post.where(_type: @type)
...
所以,如果被指定为@type“项目”,@posts将只包含“文章”类型的职位。这在文章视图中很好:只显示文章,但不显示其他类型的文章。
但是,在帖子视图中,它将显示帖子和文章。
我不希望文章显示在我的帖子视图中 - 实际上,我只想从视图中显示的基础模型文章中看到帖子。有没有一种方法可以从基础控制器中的继承模型中排除项目?
换句话说,我如何才能从基本模型中找到物品?
是的,否则它会返回一切。你可以尝试在Post中添加一个default_scope(_type:“Post”),看看它是否有帮助。 – Roman