:通过rails中的关系:按相关表中的属性查询

时间:2009-01-27 18:45:49

标签: ruby-on-rails activerecord

我有以下Rails定义:

Class Book
  string title
  has_many readings
  has_many users, :through => :readings

Class Reader
  int rating
  belongs_to :book
  belongs_to :user

Class User
  has_many readings
  has_many books, through => :readings

不,我想这样查询:

向我提供具有book.title =“test”

的用户A的所有读数评级 你可以帮帮我吗?谢谢!

2 个答案:

答案 0 :(得分:1)

这将为您提供一本书的所有评级数组 标题为“test”的用户阅读,名称为“A”

User.find_by_name("A").books.find_by_title("test").readings.map{|r| r.rating }

但说实话,我真的不确定这是不是你想要的。

答案 1 :(得分:1)

您可以包含相关模型并将其用作参数。

Users.find(
  :all,
  :include => {:readings => :books},
  :conditions => "books.title = ? AND etc"
)

显然不是100%正确,但应该给你正确的想法。