我有三个模型:Video
、Tag
和Tagging
。标签通过标签有很多视频。
我已成功向 Tag 添加了一个范围,其中包括每个标签的视频计数作为返回记录的额外属性:
class Tag
def self.include_video_count
t = Tag.arel_table
v = Video.arel_table
joins(:videos).select([t[Arel.star], v[:id].count.as("video_count")]).group(t[:id])
end
end
Tag.include_video_count.first.video_count
# => "42"
问题是 count 属性作为字符串而不是整数返回。
我是否缺少一些 Arel 方法来指定值应返回的类型?