是否可以在返回子类的单个表继承上设置范围?
例如:
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>
这很奇怪,因为范围已经设置了类型,所以看起来有点多余。有什么办法在范围内设置这种行为吗?