无法扩展 faker gem
Unable to extend faker gem
我正在遵循以下说明:
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/girls.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 控制台 I 运行:需要 Rails.root.join 'lib/faker/girls' 返回 true。
之后 运行以下命令无法按预期工作。
输出:
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}"
请大家帮我看看哪里出错了..
您混合了 parse
和 fetch
:简单的属性将被 fetch
编辑,而组合的属性将被 parsed
编辑。另一个问题是您的 class 名称应该对应于 yml(按照惯例):
# ⇓
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
...
希望对您有所帮助。
我正在遵循以下说明: 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/girls.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 控制台 I 运行:需要 Rails.root.join 'lib/faker/girls' 返回 true。
之后 运行以下命令无法按预期工作。
输出:
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}"
请大家帮我看看哪里出错了..
您混合了 parse
和 fetch
:简单的属性将被 fetch
编辑,而组合的属性将被 parsed
编辑。另一个问题是您的 class 名称应该对应于 yml(按照惯例):
# ⇓
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
...
希望对您有所帮助。