【发布时间】:2014-11-05 15:47:08
【问题描述】:
假设我有一个模型用户,它有很多笔记。每个注释都有字段 user_name。我希望我的笔记 Fabricator 看起来像这样:
Fabricator(:note, class_name: Note) do
user
content Faker::Lorem.paragraph(1)
user_name user.full_name
end
我正在尝试使用来自已存在的用户的 full_name 方法的值设置 user_name。但我收到以下错误:
undefined method `full_name' for #<Fabrication::Schematic::Attribute:0x0000000a279c50>
任何帮助将不胜感激。
【问题讨论】:
-
嗯,这是说
full_name方法不存在。我猜user是一个Fabrication::Schematic::Attribute对象,也许该方法作为类方法存在但不在实例方法中? -
full_name是用户模型中的一个方法......我正在尝试访问用户对象......也许我需要在声明中将它作为参数传递制造商? -
当我创建一个新的伪造注释时,我使用的是
Fabricate(:lead, user: myuser),其中myuser是一个用户对象......我预计在Fabricator 声明中user是一个用户对象......显然不是。 -
user是在哪里定义的? -
好吧,如果您查看link at associations,您会发现这就是您声明关联的方式。
标签: ruby-on-rails ruby-on-rails-4 fabrication-gem