je les modèles suivants, avec leurs associations concernées:Rails - Besoin d'aide mise en place des associations faiblement couplés
class User < ActiveRecord::Base
has_many :reviews
has_many :ratings
end
class Product < ActiveRecord::Base
has_many :reviews
has_many :ratings
end
class Review < ActiveRecord::Base
belongs_to :product
belongs_to :user
end
class Rating < ActiveRecord::Base
belongs_to :product
belongs_to :user
end
Compte tenu d'un Rating
spécifique, je dois aller à la Review
correspondante (si un examen existe). Je dois garder ratings
et reviews
couplé de manière lâche. (Je ne veux pas mettre en place mon modèle afin qu'un Review
belongs_to
un Rating
)
Comment dois-je mettre en place une association rating's
-reviews
?
Une fois que je travaille avec une note spécifique dans une vue, je peux appeler le @rating.product.reviews.where(:user_id => @rating.user.id).first
, mais je voudrais qu'il soit plus propre/plus efficace si possible.
Des idées?
Merci.
Il n'a pas besoin de spécifier deux fois l'utilisateur - 'user.reviews.where (: product => product)' suffira. –
Yep merci, laissé celui accidentellement, fixe. – jimworm
Pouvez-vous expliquer ce qui se passe ici: "{: product_id => &: product_id}"? THX. – johnnycakes