0
has_manyに関連付けられた2つのモデルがあります。コメントのテーブルを作成するためのRails3スコープと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)
を。 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
ユニットテストが追加されました。関連性のない話題の – JayKay
、あなたはJamiroquaiのフロントマンの後に名前を付けましたか?そのバンドを愛して:) – Samo