无法扩展faker宝石

时间:2015-01-15 08:51:20

标签: ruby-on-rails ruby faker

我遵循以下指示: 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}"

请帮我找出错误的地方..

1 个答案:

答案 0 :(得分:1)

您将parsefetch混合起来:简单属性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}}

希望它有所帮助。