我为帐户对象创建了factory
,并且我设置了这样的名称:
name { "#{Faker::Hacker.ingverb} #{Faker::Hacker.adjective} #{Faker::Hacker.noun}" }
有没有办法使用块来更改执行上下文以消除冗余的Faker::Hacker
调用?我想结束这样的事情:
name { Faker::Hacker { "#{ingverb} #{adjective} #{noun}" } }
谢谢!
答案 0 :(得分:3)
看起来您正在向类/模块发送方法,因此可以使用Module#class_eval方法简单地重写您的示例:
name { Faker::Hacker.class_eval { "#{ingverb} #{adjective} #{noun}" } }
将调用传递给class_eval
类的Faker::Hacker
的块中的方法。
答案 1 :(得分:0)
根据您的问题不是一个完整的解决方案,但输入的次数要少得多:
h = Faker::Hacker
name { "#{h.ingverb} #{h.adjective} #{h.noun}" }