utw*_*ang 6 ruby mongoid fabrication-gem
我想定义Fabricator for class有'Foo :: Bar'这样的命名空间.
告诉我它的工作方式.
在这里我的代码.
车型/ foo.rb
class Foo
include Mongoid::Document
embedded_in :foo_container, polymorphic: true
field :xxx ....
end
Run Code Online (Sandbox Code Playgroud)
车型/富/ bar.rb
class Foo::Bar < Foo
field :yyy ....
field :zzz ....
end
Run Code Online (Sandbox Code Playgroud)
数据/制造者/ foo_bar_fabricator.rb
Fabricator(:foo_bar, class_name: 'Foo::Bar') do
yyy 'MyString'
zzz 'MyString'
end
Run Code Online (Sandbox Code Playgroud)
当我尝试在parino控制台上创建Fabricatior对象但发生错误.
> Fabricate(:foo_bar)
> NoMethodError: undefined method `new?' for nil:NilClass
.... stack messages
Run Code Online (Sandbox Code Playgroud)
当我尝试创建其他Fabricator对象时不是像'User'这样的命名空间类,它就是正确的.
根据Fabrication的创建对象的文档:
要从类中使用其他名称,必须指定
from: :symbolized_class_name为第二个参数.
所以以下应该有效:
Fabricator(:foo_bar, from: 'Foo::Bar') do
yyy 'MyString'
zzz 'MyString'
end
Run Code Online (Sandbox Code Playgroud)
这对我有用
Fabricator(:foo_bar, class_name: :'Foo::Bar') do
xxx {Faker::Company.name}
yyy 'Mystring'
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1739 次 |
| 最近记录: |