J'ai 2 modèles: utilisateur et livrerecherche ActiveRecord par rails association
et une propriété de joint modèle qui relient l'utilisateur et livre
class Book < ActiveRecord::Base
has_many :ownerships
has_many :users, :through => :ownerships,:uniq=>true
...
end
class User < ActiveRecord::Base
has_many :ownerships
has_many :books, :through => :ownerships
end
class Ownership < ActiveRecord::Base
belongs_to :user
belongs_to :book
end
Le scénario est que lorsque l'utilisateur A est à la recherche de livres sur mon site Web, je renvoie les livres connexes qui sont la propriété des utilisateurs autour de l'utilisateur A (par exemple, ils sont tous les deux dans la même université). Puis-je faire cela avec l'accociation des rails?
Essayez de définir '' scope' sur Book' qui obtient des livres par certains 'lambda' qui reçoit par exemple l'utilisateur ou de l'utilisateur en cours. En lambda, vous pouvez formater votre requête sous une forme ordinaire, comme les jointures (: user) .where (: users => {: university_id => user.university_id}). (En utilisant [meta_where] (https://github.com/ernie/meta_where) ou [squeel] (https://github.com/ernie/squeel) pour Rails 3.1) –