首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gem Faker添加方法

gem Faker添加方法
EN

Stack Overflow用户
提问于 2014-06-16 01:39:02
回答 1查看 639关注 0票数 0

我正在播种一些帖子(seeds.rb)。但是我想在Faker中本地添加一个方法(past_week)。我收到了一个错误

seeds.rb

代码语言:javascript
复制
Post.create(
    :title => Faker::Lorem.words(4),
    :content => Faker::Lorem.paragraph(2)
    :created_at => Faker::Date.past_week
    )

faker.rb (在我的~/.rvm/gems/ruby-2.1.0/faker1-3-0中

代码语言:javascript
复制
require 'time'
require 'date'
require 'faker/date'

在我的date.rb中(在我的~/.rvm/gems/ruby-2.1.0/faker1-3-0/lib中

代码语言:javascript
复制
module Faker
  class Date < Base
    class << self
      def past_week
        #return a random day in the past 7 days
        today = Date.today
        today = today.downto(today - 7).to_a
        today.shuffle[0]

      end
    end
  end
end

我的错误

代码语言:javascript
复制
NoMethodError: undefined method `today' for Faker::Date:Class
/home/userlaptop/.rvm/gems/ruby-2.1.0/gems/faker-1.3.0/lib/faker.rb:138:in `method_missing'
/home/userlaptop/.rvm/gems/ruby-2.1.0/gems/faker-1.3.0/lib/faker/date.rb:5:in `past_week'
/home/userlaptop/development/public/project/jed/db/seeds.rb:21:in `<top (required)>'
EN

回答 1

Stack Overflow用户

发布于 2014-06-16 01:42:42

因为您已经将类命名为Date,所以找不到today,因为您没有定义该方法。为了引用ruby Date类,需要在该类前面加上一个作用域解析运算符:

代码语言:javascript
复制
module Faker
  class Date < Base
    class << self
      def past_week
        #return a random day in the past 7 days
        today = ::Date.today
        today = today.downto(today - 7).to_a
        today.shuffle[0]

      end
    end
  end
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24232338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档