让! rspec 关联未访问以前创建的 let!多变的
let! in rspec association not accessing previously created let! variable
我正在使用 RSpec 2 并尝试在模型规范的顶部加载一些实例变量。它们是关联的,但关联没有通过。
模型是 Column 和 Table——按照我们的设置方式,这不是问题。 Table 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) }
events_table 肯定会被创建并返回一个 ID,如果我稍后在它上面 puts.attributes。我认为带有 bang 的 lets!
会允许它按顺序创建,这样关联就会存在。
虽然我不确定是否会发生这种情况。
如果我列出任一列的属性,table_id 为零。
如何确保它不为零?我做错了什么?
提前致谢!!
事实证明,出于某种原因,可能是因为我没有设置 inverse_of
关联,所以这种关系不起作用。
当我添加 inverse_of
,然后将其更改为这个时,它起作用了:
events_table.columns.create!(title: "Title Test")
我正在使用 RSpec 2 并尝试在模型规范的顶部加载一些实例变量。它们是关联的,但关联没有通过。
模型是 Column 和 Table——按照我们的设置方式,这不是问题。 Table 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) }
events_table 肯定会被创建并返回一个 ID,如果我稍后在它上面 puts.attributes。我认为带有 bang 的 lets!
会允许它按顺序创建,这样关联就会存在。
虽然我不确定是否会发生这种情况。
如果我列出任一列的属性,table_id 为零。
如何确保它不为零?我做错了什么?
提前致谢!!
事实证明,出于某种原因,可能是因为我没有设置 inverse_of
关联,所以这种关系不起作用。
当我添加 inverse_of
,然后将其更改为这个时,它起作用了:
events_table.columns.create!(title: "Title Test")