0
我有兩個模型,它們與has_many關聯。Rails3範圍與has_many關聯
class User < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :user
end
和遷移文件創建comments表是這樣的:
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)
用戶。 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
我不完全確定你想要達到的目標。你能寫一個測試/規範嗎? – iain 2010-12-10 18:46:36
增加了單元測試。 – JayKay 2010-12-10 19:40:15
在一個不相關的話題上,你是否從Jamiroquai的前人名字中指出自己的名字?愛那個樂隊:) – Samo 2010-12-13 16:04:26