是否可以在返回子类的单个表继承上设置范围?
例如:
class Post < ActiveRecord::Base
scope :sticky, -> { where(type: 'StickyPost') }
end
class StickyPost < Post
end
现在,当我调用sticky
一组帖子时,我会得到一组StickyPost
实例。
但是当我打电话时posts.sticky.build
,type
设置为StickyPost
,但课程仍然是Post
。
posts.sticky.build
=> #<Post id: nil, message: nil, type: "StickyPost", created_at: nil, updated_at: nil>
更新
显然这行得通。
posts.sticky.build type: 'StickyPost'
=> #<StickyPost id: nil, message: nil, type: "StickyPost", created_at: nil, updated_at: nil>
这很奇怪,因为范围已经设置了类型,这似乎有点多余。有什么方法可以在范围内设置此行为?