【问题标题】:How to specify a model in a default_scope?如何在 default_scope 中指定模型?
【发布时间】:2015-05-03 03:39:27
【问题描述】:

我的模型Chapter has_many Pages,而这又只属于一个Chapter。我正在尝试执行以下连接:

Chapter.joins(:pages)

但是我收到了这个错误:

SQLite3::SQLException: ambiguous column name: created_at: SELECT "chapters".* FROM "chapters" INNER JOIN "pages" ON "pages"."chapter_id" = "chapters"."id" AND (created_at >= '2015-04-24 23:22:32.783941')
ActiveRecord::StatementInvalid: SQLite3::SQLException: ambiguous column name: created_at: SELECT "chapters".* FROM "chapters" INNER JOIN "pages" ON "pages"."chapter_id" = "chapters"."id" AND (created_at >= '2015-04-24 23:22:32.783941')

Page 具有以下默认范围:

default_scope { where('created_at >= ?', 7.days.ago) }

如果没有那个 default_scope,连接就可以工作。所以我认为我必须以某种方式在 default_scope 中指定page.created_at。有谁知道怎么做?

【问题讨论】:

    标签: ruby-on-rails ruby model scope


    【解决方案1】:
    default_scope {
      where("pages.created_at >= ?", 7.days.ago)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-05
      • 1970-01-01
      • 1970-01-01
      • 2019-02-03
      • 2020-08-05
      相关资源
      最近更新 更多