三个表,用于分布式库系统:
Class Book # model: id, name, auhtor
has_many :book_belongs
has_many :owners, through: :book_belongs, source: :user
Class User # model: id, name, email, facebook_uid, facebook_friends
has_many :book_belongs
has_many :ownedbooks, through: :book_belongs, source: :book
Class BookBelong # model: user_id, book_id
belongs_to :user
belongs_to :book
@ user.facebookfriends是一个(序列化的)哈希,包含用户facebook朋友的facebook_id和facebook_name
我在设计ruby / rails activerecord查询时遇到了麻烦:
In" english"查询应查看图书所有者facebook_id并与用户facebook_friends哈希匹配。
答案 0 :(得分:0)
好的 - 使用
解决了BookBelong.joins(:book).joins(:user).where('users.uid' => current_user.friends.keys)
使用简单的
在视图中获取实际的图书 <% @friends_books.each do |book| %>
<td><%= book.book.name %></td>
但似乎没有超级效率。