【问题标题】:let! in rspec association not accessing previously created let! variable让!在 rspec 关联中不访问以前创建的让!多变的
【发布时间】:2015-05-14 22:41:04
【问题描述】:

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

模型是 Column 和 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) }

如果我稍后在它上面放置.attributes,那么肯定会创建 events_table 并返回一个 ID。我认为带有 bang woudl 的 lets! 允许它按顺序创建,以便关联存在。

我不确定这是否正在发生。

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

如何确保它不为零?我做错了什么?

提前致谢!!

【问题讨论】:

  • 试试create!,如果无法保存记录会报错。
  • 表创建得很好。似乎出于某种原因,由于某种原因,我无法在下一个连续的let! 中使用创建的变量。

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


【解决方案1】:

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

当我添加inverse_of,然后将其更改为此,它可以工作:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多