首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >您能使用Timecop在Rails中进行开发吗?

您能使用Timecop在Rails中进行开发吗?
EN

Stack Overflow用户
提问于 2015-08-20 22:52:30
回答 1查看 896关注 0票数 2

我发现时间旅行宝石像Timecop,用来测试时间相关的特性。在开发中也可以和/或明智地使用这一点吗?

若否:是否有另一款适合发展的时间游人宝石?我找不到一个。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-20 23:41:36

是的你当然可以。下面是我构建的一个应用程序中的一些示例代码,您可以在这个应用程序中通过管理区域设置日期,然后在会话期间浏览站点,就好像是该日期一样:

app/controllers/concerns/time_travel_filters.rb

代码语言:javascript
复制
# This allows us to set a different date
# in the admin area, and use TimeCop to process each
# request as being on that different date - useful for
# testing different phases of the challenge.
module TimeTravelFilters
  extend ActiveSupport::Concern

  included do
    if Rails.env.development? || Rails.env.staging?
      around_filter :time_travel_for_request
    end
  end

  def time_travel_for_request
    time_travel
    yield
    time_travel_return
  end

  def time_travel
    logger.info 'TIME TRAVEL START'
    if session[:timecop_date]
      Timecop.travel(session[:timecop_date])
    else
      Timecop.return
    end
  end

  def time_travel_return
    logger.info 'TIME TRAVEL RETURN'
    Timecop.return
  end
end

然后,您只需要在控制器中使用include TimeTravelFilters,就可以使用它。

为了使其生效,您需要设置session[:timecop_date] --我是通过我的管理区域中的一个页面上的一个表单来实现的,但是您可以任意设置它。返回到当前时间就像删除该会话键一样简单。

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

https://stackoverflow.com/questions/32129741

复制
相关文章

相似问题

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