Kee*_*son 2 views ruby-on-rails models
我有一个名为网站的模型has_many :likes,当然还有另一个叫做喜欢的模型belongs_to :website.我想得到一个所有网站的数组,但按照网站喜欢的数量来订购它们.
有用的信息:
我有它设置所以@website.likes将返回喜欢@website.(@website.likes.count是一个网站喜欢的数量)
我想得到一个所有网站的数组,但按照网站喜欢的数量来订购它们.
正如其他人发布的那样,您可以进行加入likes,然后按计数进行排序.性能可能有点不确定,具体取决于索引等.根据您是否运行Rails 2或3,您的语法会略有不同.
另一种方法是维护一个非规范化likes_count列,在保存模型对象websites时更新该列Like.
然后你只需要查询Website并指定一个likes_count降序(并且很容易编入索引).
为此,请likes_count在其上创建一个整数列,websites并在模型中:counter_cache的belongs_to声明中指定选项Likes.例如:
class Likes
belongs_to :website, :counter_cache => true
end
Run Code Online (Sandbox Code Playgroud)
查看http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html了解更多信息
| 归档时间: |
|
| 查看次数: |
879 次 |
| 最近记录: |