【问题标题】:Arel returning count column as string instead of intArel 将计数列作为字符串而不是 int 返回
【发布时间】:2013-07-24 03:25:48
【问题描述】:

我有三个模型:VideoTagTagging。标签通过标签有很多视频。

我已成功为 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 方法来指定值应返回的类型?

【问题讨论】:

    标签: ruby-on-rails activerecord arel


    【解决方案1】:

    显然这取决于数据库返回的列的类型(这是有道理的!)

    例如,Postgres 将计数作为字符串返回。

    https://github.com/rails/rails/issues/3647

    所以......基本上......你运气不好(我也是;)

    【讨论】:

      猜你喜欢
      • 2019-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      • 2019-03-25
      • 2013-02-23
      相关资源
      最近更新 更多