with tutorial framework español djangoproject desde con cero applications ruby-on-rails activerecord active-record-query

ruby on rails - tutorial - ¿Cómo consultar un modelo basado en el atributo de otro modelo que pertenece al primer modelo?



tutorial django (1)

Si tengo una Person modelo, que tiene has_many Vehicles y cada Vehicle puede ser de tipo car o motorcycle , ¿cómo puedo consultar a todas las personas que tienen automóviles y todas las personas que tienen motocicletas?

No creo que estos sean correctos

Person.joins(:vehicles).where(vehicle_type: ''auto'') Person.joins(:vehicles).where(vehicle_type: ''motorcycle'')


Puedes hacer lo siguiente:

Person.includes(:vehicles).where(vehicles: { type: ''auto'' }) Person.includes(:vehicles).where(vehicles: { type: ''motorcycle'' })

Tenga cuidado con .joins y .includes :

# consider these models Post # table name is posts belongs_to :user #^^ User # table name is users has_many :posts #^ # the `includes/joins` methods use the relation name defined in the model: User.includes(:posts).where(posts: { title: ''Bobby Table'' }) #^ ^ # but the `where` uses the exact table name: Post.includes(:user).where(users: { name: ''Bobby'' }) #^^^ ^

Un truco:

Post belongs_to :author, class_name: ''User'' User # table named users has_many :posts Post.includes(:author).where(users: { name: ''John'' }) # because table is named users

Preguntas similares: