单表继承范围

时间:2013-09-18 09:58:57

标签: ruby-on-rails ruby ruby-on-rails-4 single-table-inheritance

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

例如:

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>

这很奇怪,因为范围已经设置了类型,所以看起来有点多余。有什么办法在范围内设置这种行为吗?

0 个答案:

没有答案