Я использую MongoMapper вместо ActiveRecord.
У меня есть модель пользователя и модель задачи.В модели задач у меня есть 2 атрибута:
Оба атрибута являются ссылками пользователя.
Вот отношения между двумя моделями:
User.rb
has_many :tasks, :as => :owner
Taks.rb
belongs_to :owner, :class_name => "User", :polymorphic => true
Я использовал RSpec для написания теста: (@пользователь объявлен ранее)
it "should have many tasks" do
another_user = Factory.create(:user, :email => Faker::Internet.email)
task_1 = Factory.create(:task, :owner => another_user, :author => another_user)
task_2 = Factory.create(:task, :owner => another_user, :author => @user)
task_3 = Factory.create(:task, :owner => @user, :author => @user)
another_user.tasks.size.should == 2
end
И вот в чем проблема:
Failure/Error: another_user.tasks.size.should == 2
expected: 2
got: 3 (using ==)
Однако, когда я делаю то же самое в консоли rails, я получаю хорошие результаты ...
Вот заводы:
Factory.define :user do |u|
u.first_name 'Test User' #
u.username 'Test User' #
u.surname 'TheTest' #
u.email 'foo@foobar.com' #
u.password 'please' #
u.confirmed_at Time.now #
end
Factory.define :task do |u|
u.author nil #
u.owner nil #
u.subjects []
u.timeframe ""
u.initially_placed_at nil
u.label "Foo Task" #
u.description "A small task description"
u.done false
u.pinned false
u.confidentiality ""
end