Je commence un petit projet Rails pour enregistrer les périphériques iOS ici au bureau, juste pour apprendre le cadre, et je l'ai rencontré le problème suivant:Model.includes (propriété): apparemment ne fonctionne pas
Etant donnés deux modèles « appareil » et « propriétaire » avec les associations suivantes:
class Owner < ActiveRecord::Base
has_many :devices
end
class Device < ActiveRecord::Base
belongs_to :owner
belongs_to :os_version
belongs_to :device_type
end
sont Schemas:
CREATE TABLE "devices" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"uuid" varchar(255),
"imei" varchar(255),
"device_type_id" integer,
"label" varchar(255),
"os_version_id" integer,
"owner_id" integer,
"created_at" datetime,
"updated_at" datetime,
"serial" varchar(255)
);
CREATE TABLE "owners" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"first_name" varchar(255),
"last_name" varchar(255),
"username" varchar(255),
"created_at" datetime,
"updated_at" datetime
);
Je suis en train d'obtenir un contrôleur pour aller chercher avec impatience un propriétaire avec toutes ses Devic es, j'ai donc essayé les suivantes:
class OwnerController < ApplicationController
def list
@owners = Owner.includes(:devices).all
respond_to do |format|
format.xml { render :xml=>@owners }
format.any(:json, :html) { render :json => @owners }
end
end
end
Le contrôleur énumère avec succès tous les propriétaires, mais les appareils sont nulle part.
J'ai également essayé d'utiliser l'étendue par défaut dans la classe Owner, mais toujours pas bon. Lorsque vous utilisez rails console
, toute requête utilisant Owner.include(:devices)
ne parvient pas à renvoyer d'informations sur le périphérique, mais Owner.first.devices
a tout ce qu'il contient.
Des idées sur ce que je pourrais faire de mal?
Merci!
Merci, c'était fini! – Nico