让!在rspec关联中没有访问以前创建的let!变量

时间:2015-03-12 16:40:05

标签: ruby ruby-on-rails-3 associations rspec2

我正在使用RSpec 2并尝试在模型规范的顶部加载一些实例变量。他们是相关联的,但协会没有通过。

模型是列和表 - 这不是我们设置的方式的问题。表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) }

如果稍后我把putss.attributes放在上面,那么events_table肯定会被创建并返回一个ID。我认为lets!与bang woudl允许它按顺序创建,因此关联将存在。

我不确定是否会发生这种情况。

如果我列出任一列的属性,则table_id为nil。

我怎样才能确保它不是零?我做错了什么?

提前致谢!!

enter image description here

1 个答案:

答案 0 :(得分:0)

事实证明,由于某种原因,可能是因为我没有设置inverse_of关联,因此关系不起作用。

当我添加inverse_of,然后将其更改为此内容时,它可以正常运行:

events_table.columns.create!(title: "Title Test")