quelqu'un sait comment j'écrirais cette requête avec AR?Comment écrire cette requête de jointure avec ActiveRecord?
select *, (m.user_id=1) as member from band b join memberships m on m.band_id = g.id;
Merci d'avance.
quelqu'un sait comment j'écrirais cette requête avec AR?Comment écrire cette requête de jointure avec ActiveRecord?
select *, (m.user_id=1) as member from band b join memberships m on m.band_id = g.id;
Merci d'avance.
L'hypothèse ici est que vous avez quelque chose qui ressemble à ceci:
class Band < ActiveRecord::Base
has_many :memberships
has_many :users, :through => :memberships
end
class User < ActiveRecord::Base
has_many :memberships
has_many :bands, :through => :memberships
end
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :band
end
Dans ce cas, vous pouvez effectuer cette requête facilement. Votre question est assez vague, cependant, si ce n'est pas ce que vous cherchez, veuillez envisager d'élargir votre question avec plus de détails. Vous faites également référence à un alias "g" dans votre question qui n'est jamais défini.
Je ne vois pas pourquoi vous voudriez définir des attributs booléens via les requêtes SQL. Vous pouvez le faire avec un bon vieux 'Ruby, qui vous permet également d'utiliser beaucoup de choses comme dit jdl.
class Book
def member?
user_id == 1
end
end
S'il vous plaît lire ma question mieux, bien sûr, je sais comment has_many à travers. Ce que j'essaie de faire, c'est que ma requête renvoie un champ booléen personnalisé "(memberships.user_id = 1) en tant que membre", votre réponse ne répond pas du tout à ma question. –