Tag: 模型关联

rails关联方法如何工作?

rails关联方法如何工作? 让我们考虑这个例子 class User < ActiveRecord::Base has_many :articles end class Article < ActiveRecord::Base belongs_to :user end 现在我可以做点什么 @user = User.find(:first) @user.articles 这会抓取属于该用户的文章。 到现在为止还挺好。 现在我可以继续在某些条件下对这些文章进行查找。 @user.articles.find(:all, :conditions => {:sector_id => 3}) 或者简单地声明和关联方法 class User {:sector_id => sector_id}) end end end 并做 @user.articles.of_sector(3) 现在我的问题是,这是如何find使用关联方法获取的ActiveRecord对象数组? 因为如果我们实现我们自己的名为articles的User实例方法并编写我们自己的实现,它给出了与关联方法完全相同的结果,那么ActiveRecord对象的fetch数组上的find将无法工作。 我的猜测是关联方法将某些属性附加到获取对象数组,这使得能够使用find和其他ActiveRecord方法进一步查询。 在这种情况下,代码执行的顺序是什么? 我怎么能validation这个?