Я разрабатываю Rails 3.1.3 и Ruby 1.9.2 и MySQL 5.1.
Я хотел бы заказать модель по количеству уникальных родственных моделей. Вот мой код.Как заказать по количеству уникальных идентификаторов связанных моделей
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 раза, в то же горнолыжный курорт, количество один.
< CheckIn user_id: 1, ski_resort_id: 1" >
< CheckIn user_id: 1, ski_resort_id: 1" >
< CheckIn user_id: 1, ski_resort_id: 1" >
Когда пользователь 2 проверяется в 4 раза для различных лыжных курортов, граф четыре
< CheckIn идентификатор_пользователя:. 2, ski_resort_id: 1" >
< CheckIn user_id: 2, ski_resort_id: 2" >
< CheckIn user_id: 2, ski_resort_id: 3" >
< CheckIn 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. –