我只是想知道是否可以使用FactoryGirl创建一个名为“alias”的属性,因为别名是Ruby中的保留字。
FactoryGirl.define do
factory :blah do
name "dummy"
alias "dummy"
end
end
我尝试了各种逃避事物的组合,却无法获得任何有用的工作。
答案 0 :(得分:34)
Ruby不知道你是在尝试调用一个名为alias
的方法,还是将一个方法作为另一个方法,而默认为后者。您可以通过
self.alias "dummy"
即,通过明确指定接收器。这通常是在其他情况下的方式,无论你是在调用方法还是做其他事情都是不明确的。例如
self.foo = 'bar'
调用foo=
方法而不是创建一个名为foo的局部变量。
对于small number of field names,这不起作用。 Factory girl的DSL使用method_missing
,因此如果DSL对象具有该名称的方法,则会调用它。在这些情况下,您可以执行DSL Sugar normal为您执行的操作并直接致电add_attribute
:
FactoryGirl.define do
factory :blah do
add_attribute :name, "some value"
end
end
与
相同FactoryGirl.define do
factory :blah do
name "some value"
end
end
答案 1 :(得分:1)
为int main(int argc, char** argv){
char* somestring = malloc(1024);
core_read_file("/some/file/path", &somestring, somestring);
printf("In main(): %s\n", somestring);
free(somestring);
return 0;
}
块定义变量并在其上调用方法。
factory .. do