8

是否可以在返回子类的单个表继承上设置范围?

例如:

class Post < ActiveRecord::Base
  scope :sticky, -> { where(type: 'StickyPost') }
end

class StickyPost < Post
end

现在,当我调用sticky一组帖子时,我会得到一组StickyPost实例。

但是当我打电话时posts.sticky.buildtype设置为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>

这很奇怪,因为范围已经设置了类型,这似乎有点多余。有什么方法可以在范围内设置此行为?

4

0 回答 0