У меня есть две модели, которые связаны с has_many.
class User < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :user
end
И файл миграции для создания таблицы комментариев выглядит так:
class CreateComments < ActiveRecord::Migration
def self.up
create_table :comments do |t|
t.string :body
t.boolean :important, :default => false
t.references :user
t.timestamps
end
end
...
Чтобы вывести список пользователей, оставивших важные комментариикак их последний, я попытался:
scope :have_important, (joins(:comments) & Comment.order('created_at desc')).where('important = ?', true)
на user.rb.Но это относится и к пользователям, которые опубликовали важный комментарий как НЕ последний.Как я могу определить эту область?
Модульный тест здесь:
test "Scoped user's latest comment should be important" do
User.have_important.each do |user|
assert_equal user.comments.last.important, true
end
end