Pregunta

Estoy recibiendo este error

Mysql :: error: columna 'id' en la lista de campo es ambiguo

Cuando se usa un método de búsqueda como tal: self.prompts.find(:all, :select => 'id')

Los modelos se llaman utilizando un HAS_MANY: a través de la asociación, por lo que MySQL se queja de que hay múltiples columnas de 'ID', ya que las 3 tablas que se utilizan tienen una columna 'ID'.

Busqué esto y entendí lo que está pasando mal en el extremo SQL, pero no sé cómo resolverlo en el método de búsqueda de Activerecord, y no estoy seguro de mis habilidades SQL para intentar rodar mi propia consulta SQL. ¿Hay alguna forma de masajear el método de búsqueda en algo que jugará bien?

editar

Aquí está el código del modelo de actor relevante:

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

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top