Использование ROR 2.3.8
У меня есть это в cities_controller.rb
:
@shops = Shop.published.search params[:keyword], {
:conditions => conditions,
:star => true,
:group_by => 'city_id',
:group_function => :attr,
:page => params[:page]
}.merge(:order => 'rating_average DESC')
@cities = @shops.collect { |shop| shopy.city }
Как я могу сказать Rails получить модель rating_average
от City вместо модели Shop? Потому что модель магазина не имеет rating_average
. Это на самом деле City
модель, которая получает оценку.
Спасибо.
ОБНОВЛЕНИЕ
published
именная область в Shop.rb
sphinx_scope(:published) {
{:conditions => {:status => 'published'}}
}
Индексы в Shop.rb
define_index do
indexes city.name, :as => :name, :sortable => true
indexes city.duration, :as => :duration
indexes city.status, :as => :status
#has city.budget, :as => :budget
#has city(:created_at), :as => :created_at
has city(:rating_average), :as => :rating_average
has city_id
end
ОБНОВЛЕНИЯ 2
class City < ActiveRecord::Base
has_many :shops, :dependent => :destroy
...
end