我遵循以下指示: http://cloudspace.com/blog/2013/10/18/extending-faker/#.VLdumx9sY8o
我的/config/locales/faker.en.yml看起来像:
en:
faker:
girls:
first_name: ["priyanka", "Tanya", "aditi", "Tanvi"]
last_name: ["Acharya", "Agarwal", "Agate", "Aggarwal"]
name:
- "#{first_name} #{last_name}"
我有以下内容:/ lib / faker / girlss.rb看起来像:
module Faker
class Girl < Base
class << self
def first_name
parse('girls.first_name')
end
def last_name
parse('girls.last_name')
end
def name
fetch('girls.name')
end
end
end
end
启动rails控制台后我运行:require Rails.root.join&#39; lib / faker / girls&#39;返回真实的。
之后运行以下命令无法按预期工作。
输出:
2.1.1 :004 > Faker::Girl.first_name => ""
2.1.1 :005 > Faker::Girl.last_name => ""
2.1.1 :006 > Faker::Girl.name => "\#{first_name} \#{last_name}"
请帮我找出错误的地方..
答案 0 :(得分:1)
您将parse
和fetch
混合起来:简单属性fetch
编辑时parsed
为# ⇓
class Girls < Base
class << self
def first_name
#⇓⇓⇓⇓⇓ it is a simple property
fetch('girls.first_name')
end
def last_name
#⇓⇓⇓⇓⇓ it is a simple property
fetch('girls.last_name')
end
def name
#⇓⇓⇓⇓⇓ it is a composed property
parse('girls.name')
end
...
。另一个小问题是你的类名应该与yml相对应(按惯例):
{{1}}
希望它有所帮助。