Rails 3 отличное соединение с Postgresql - PullRequest
1 голос
/ 06 марта 2012

Использование Postgresql 9.1 и Rails 3.2.2.Как бы я возвратил коллекцию последнего сингла users_checkins для каждого места для данного пользователя?

Я пробовал

User.find(1)
  .users_checkins
  .joins(:venues_checkins)
  .merge(VenuesCheckin.select('DISTINCT(venues_checkins.venue_id)')) 

, но это не позволяет получить какие-либо атрибуты для UsersCheckin.Мои модели ниже.

class Venue
  has_many :venues_checkins
  has_many :users_checkins, through: :venues_checkins
end

class UsersCheckin
  #start:datetime
  #finish:datetime
  belongs_to :user
  belongs_to :venues_checkin
end

class VenuesCheckin
  belongs_to :venue
  has_many :users_checkins
end

class User
  has_many :users_checkins
  has_many :venues_checkins, through: :users_checkins
  has_many :venues, through: :users_checkins
end

Обновление

Если у пользователя есть 3 записи users_checkins для Места A и 3 для Места B, моя коллекция должна вернуть 2 записи содна запись является последним созданным users_checkin из Места A, а другая запись является последним созданным users_checkin из Места B, с коллекцией, упорядоченной по первой записи в коллекции, и которая из этих двух записей была создана последней.И я начинаю с пользователя, потому что я хочу только users_checkins для данного пользователя.

1 Ответ

1 голос
/ 06 марта 2012

Если вы можете написать SQL и заставить его работать в приглашении psql, превратите его в пользовательский метод в классе User и пропустите попытку вставить пользовательский запрос в ORM.

Кроме того,Похоже, вы хотите, чтобы в вашем запросе был спецификатор min / max, а не отдельный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...