RSpec тестирование логики отношений - PullRequest
4 голосов
/ 08 января 2010

Я тестирую следующее:

Счет

class Account < ActiveRecord::Base 
  has_many :ownerships
  has_many :brands, :through => :ownerships
end

Право собственности присоединиться к модели

class Ownership < ActiveRecord::Base
  belongs_to :brand
  belongs_to :account
end

Test

it "should be able to apply for brand ownership" do
  account = Account.create(valid_account_attributes)
  account.ownerships.create(:brand => Brand.create(:name => 'Superuser'))
  account.ownerships.first.state == 'pending'
end

И я продолжаю получать эту ошибку

You cannot call create unless the parent is saved

Я действительно не понимаю - какой родитель? Не следует ли создавать и сохранять все модели при использовании метода create? Я пытался поместить везде "account.save".

Ответы [ 2 ]

1 голос
/ 10 января 2010

Вы уверены, что account действительно сохранено? Вы пытались использовать create!, чтобы увидеть, возникают ли какие-либо исключения?

0 голосов
/ 08 июля 2011

У меня была такая же ошибка. Я думал, что удалил все строки своих таблиц, но у меня все еще был один с пользователем, тем же пользователем, которого я пытался вставить с помощью команды. Я решил проблему, стерев строку.

...