我只是想知道是否可以使用FactoryGirl创建一个名为"alias"的属性,因为别名是Ruby中的保留字.
FactoryGirl.define do
factory :blah do
name "dummy"
alias "dummy"
end
end
Run Code Online (Sandbox Code Playgroud)
我已经尝试了各种逃避事物的组合,但却无法获得任何有用的工作.
Fre*_*ung 34
Ruby不知道你是在尝试调用一个方法,alias
还是将一个方法作为另一个方法,而默认为后者.你可以做到消除歧义
self.alias "dummy"
Run Code Online (Sandbox Code Playgroud)
即,通过明确指定接收器.这通常是在其他情况下进行的方式,无论您是在调用方法还是在做其他事情,例如
self.foo = 'bar'
Run Code Online (Sandbox Code Playgroud)
调用foo=
方法而不是创建一个名为foo的局部变量.
对于少数字段名称,这将不起作用.工厂女孩的DSL使用method_missing
如此,如果DSL对象具有该名称的方法,则将调用它.在这些情况下,您可以执行DSL sugar normal为您执行的操作并add_attribute
直接调用:
FactoryGirl.define do
factory :blah do
add_attribute :name, "some value"
end
end
Run Code Online (Sandbox Code Playgroud)
是相同的
FactoryGirl.define do
factory :blah do
name "some value"
end
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3118 次 |
最近记录: |