我对 Rails 相当陌生,并且了解连接和关联的基础知识,但我在如何最好地使用 Rails 进行一些一般查询方面遇到了挑战。我已经查看了很多文档,但仍不清楚此查询的最佳方法。型号如下
用户:
has_many :accounts
帐户:
belongs_to :user
belongs_to :address, :class_name => "Location", :foreign_key => 'address_id'
地址:
belongs_to :account (This is really a many to one relationship where an address,
can belong to more than one account)
查询是查找用户的所有帐户地址。一个标准的 sql 查询看起来像这样。
SELECT Users.ID AS Users_ID, Users.Username, Account.acct_name, Address.*
FROM Address INNER JOIN (Users INNER JOIN Account ON Users.ID = Account.user_id)
ON Address.ID = Account.address_id
WHERE (((Users.ID)=2));
在没有直接 sql 查询的情况下,rails 似乎有很多功能可以做到这一点。这样做的最佳方法是什么,模型是否正确?是正确模型中的外键表示。
预先感谢您的协助。