2015-03-12 1 views
0

Я использую RSpec 2 и пытаюсь загрузить несколько переменных экземпляра в верхней части спецификации модели. Они связаны, но ассоциации не проходят.let! в ассоциации rspec, не обращающейся к ранее созданному let! variable

Модели - это столбец и стол - это не проблема, как мы ее создали. Стол таблицы has_many.

let!(:company) { Company.first } 
let!(:events_table) { Table.create(name: "Events Test") } 
let!(:text_column) { Column.create(title: "Title", name: "title", column_type: "text", table_id: events_table.id)} 
let!(:start_date_column) { Column.create(title: "Start Date", name: "start_date", column_type: "date", table_id: events_table.id) } 

Event_table определенно создается и возвращает идентификатор, если позже я буду указывать его атрибуты. Я думал, что lets! с bang woudl позволяют создать его в порядке, чтобы ассоциация существовала.

Я не уверен, что это происходит.

Если я выставляю атрибуты для любого из столбцов, table_id равен нулю.

Как я могу гарантировать, что это не ноль? Что я делаю не так?

Спасибо заранее!

enter image description here

+2

Попробуйте '' создать, это вызывает ошибку, если он не может сохранить запись!. – Stefan

+0

Стол создается только отлично. По какой-то причине по какой-то причине я почему-то не могу использовать переменную, созданную в предыдущем 'let!' В следующем последовательном. –

ответ

0

Оказывается, что по какой-то причине, может быть, потому что не имеют inverse_of ассоциаций установить, что отношение просто не работает.

Когда я добавляю inverse_of, а затем изменить его на это, она работает:

events_table.columns.create!(title: "Title Test") 
Смежные вопросы