我正在使用Rails 3.1.3和Ruby 1.9.2以及MySQL 5.1進行開發。
我想通過獨特的相關模型計數模型。 這是我的代碼。如何通過統計相關模型的唯一ID進行排序
class User < ActiveRecord::Base
has_many :check_ins
.
.
end
class CheckIn < ActiveRecord::Base
belongs_to :user, :counter_cache => true
belongs_to :ski_resort, :counter_cache => true
.
.
end
class SkiResort < ActiveRecord::Base
has_many :check_ins
.
.
end
而且我想通過在檢查滑雪勝地的計數訂購用戶模型。
當用戶1〜3次在同一滑雪勝地檢查,計數爲一個。
<檢入user_id說明:1,ski_resort_id:1" >
<檢入user_id說明:1,ski_resort_id:1" >
<檢入user_id說明:1,ski_resort_id:1" >
當用戶2中4次檢查對於不同的滑雪場,計數爲4
<簽入USER_ID:2,ski_resort_id:1" >
<檢入user_id說明:2,ski_resort_id:2" >
<簽入user_id說明:2,ski_resort_id:3" >
<簽入user_id說明:2,ski_resort_id:4" >
我下面寫的,但爲了通過簽到的次數。
class User < ActiveRecord::Base
scope :checked_in_ski_resorts_count_ranking, lambda{
{
:joins => {:check_ins => :ski_resort},
:group => 'users.id',
:order => 'COUNT(ski_resorts.id) DESC'
}
}
# => {1 => 3, 2 => 4}
end
我想要的結果是'{2 => 4,1 => 1}'。
如何將此規則的訂單範圍添加到用戶模型?
此致敬禮。
在添加範圍之前,請先檢查是否可以編寫在Rails控制檯中運行的函數。 – 2013-04-23 07:56:03