4

我收到此错误

Mysql::Error: 字段列表中的列 'id' 不明确

当使用这样的查找方法时:self.prompts.find(:all, :select => 'id')

使用 has_many :through 关联调用模型,因此 MySQL 抱怨有多个 'id' 列,因为所有 3 个正在使用的表都有一个 'id' 列。

我查看了这个并了解 SQL 端出了什么问题,但不知道如何在 ActiveRecord 查找方法中解决它,而且我对尝试滚动自己的 SQL 查询的 SQL 能力没有信心。有没有办法将 find 方法按摩成可以很好玩的东西?

编辑

以下是相关的 Actor 模型代码:

class Actor < ActiveRecord::Base
  has_many :acts, :dependent => :destroy
  has_many :decisions, :through => :acts, :order => 'created_at'
  has_many :prompts, :through => :decisions, :order => 'id'
4

1 回答 1

7

您需要更明确地确定要选择的 id。例如:

self.prompts.find(:all, :select => 'prompts.id') #prompts 是表名
于 2011-02-06T06:45:38.850 回答