【问题标题】:How to alias joins in rails 2.3如何在rails 2.3中为连接起别名
【发布时间】:2016-07-12 14:58:24
【问题描述】:

在我的应用程序中,我想创建一个命名范围以用于跨应用程序从 has_many 关联获取数据的查询。我在其他地方遇到问题:包含相同的关联,导致 mysql 错误

Mysql::Error: Not unique table/alias: 'foo'

这是我命名的作用域的样子:

named_scope :single_foo, :joins => :foo, :group => "foo.blip_id", :having => "count(foo.blip_id) = 1"

如何更新我的 :joins 语句为 foo 创建别名,以便在以下查询中不会出现唯一表错误?

Blip.single_foo.find(:all, :include => [ :foo ], :conditions => (......))

此外,如果有人可以将我引导到更简单的命名范围,我只想选择具有单个 Foo 的 Blip。

【问题讨论】:

    标签: ruby-on-rails activerecord named-scope


    【解决方案1】:

    不需要别名。 :include => [ :foo ] 可以从后面的查询中取出,因为它已经包含在 single_foo 命名范围的 :joins 调用中。所以我只需要我的查询是这样的:

    Blip.single_foo.find(:all, :conditions => (......))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      相关资源
      最近更新 更多