2010-01-08 2 views
4

Я проверяю следующее:RSpec логика тестирования отношения

счет

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».

+0

Я думаю, что есть ошибка проверки. Поэтому #save или #create возвращает false. Я сам сталкиваюсь с этой проблемой. В моем случае я высмеивал возвращаемый тип, используя build ie. не сохранять объект – deepak

ответ

1

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

0

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

Смежные вопросы