我有 3 个模型:Category、Account 和 SubAccount
关系是:
Accounts has_many :sub_accounts
Categories has_many :sub_accounts
我想获取给定帐户未使用的所有类别的列表。我在 Category 模型中的方法目前看起来像:
class Category < ActiveRecord::Base
def self.not_used_by(account)
Category.find_by_sql("select * from categories where id not in(select category_id from sub_accounts where account_id = #{account.id})")
end
end
我的问题是,有没有比使用 SQL 更干净的选择?
注意。我目前正在使用 Rails 3(beta)