首先,题目。
我有三个模型,它们之间通过 has_many :trough 关联相互链接,如下所示:
#User model
has_many :chars_del, :class_name => CharDelegated, :dependent => :destroy
has_many :chars, :through => :chars_del
#CharDelegated model
#has a field owner:integer
belongs_to :char
belongs_to :user
#Char model
#has fields name:string
has_many :chars_del, :class_name => CharDelegated
has_many :users, :through => :chars_del
我需要做的是我需要从用户记录中搜索以查找特定用户拥有的所有字符(:所有者字段为真)按名称排序。我已经坚持了几个小时了,所以我相信我可能会错过一个非常简单的答案......但到目前为止我尝试过的任何事情都没有奏效。
更新 发现了一些有用的东西:
user.chars.where(:char_delegateds => {:owner => 1}).order('name')
不知道为什么 :chars_del 给出了错误,但是完整的表名完成了这项工作。
安德鲁,你的答案也很好,而且在数据库上要快一点,比很多。