Ruby no sabe si está tratando de llamar a un método llamado alias
o alias un método como otro, y se predetermina a este último. Puede desambiguar haciendo
self.alias "dummy"
es decir, especificando explícitamente el receptor. Por lo general, este es el camino a seguir en otros casos en los que es ambiguo si llama a un método o está haciendo otra cosa, p.
self.foo = 'bar'
para llamar al método foo=
en lugar de crear una variable local llamada foo.
Para un small number of field names esto no funcionará. El DSL de Girl Factory usa method_missing
, por lo tanto, si el objeto DSL tiene un método de ese nombre, se lo llamará en su lugar. En esos casos se puede hacer lo que hace el azúcar DSL normal para usted y llamar add_attribute
directamente:
FactoryGirl.define do
factory :blah do
add_attribute :name, "some value"
end
end
es lo mismo que
FactoryGirl.define do
factory :blah do
name "some value"
end
end
Usando 'self.alias' hizo el truco. Estaba seguro de que ya lo había intentado. (-: ¡Gracias! –
Estaba teniendo este problema donde mi modelo tiene un atributo llamado "end". 'Self.end' lo hace funcionar. – GMA
Maldición, esto no funciona para los campos denominados' método'. –