Самая важная вещь, с которой нужно познакомиться при использовании ActiveRecord, - это просмотр ваших логов.Если вы запускаете свое приложение с локального хоста, запущенного с rails server
, то вы должны увидеть весь SQL, выведенный на вашу консоль.
Я говорю «проверь свой SQL», потому что твой подход не совсем понятен.Если вы хотите выбрать только конкретную беседу и получить ее последнее сообщение, вам следует сделать что-то вроде этого:
@messages = Message.all(:conditions =>
{ :recipient_id => current_user.id,
:listing_id => params[:listing_id] },
:order => "created_at DESC")
Если вы пытаетесь получить последние Message
для каждого Listing
тогда вам нужно работать с другой точки зрения, например так:
@listings = Listings.all(:conditions => {:recipient_id => current_user.id},
:include => :messages,
:order => 'messages.created_at DESC')
last_messages_of_first_listing = @listings.first.messages.first