gpt4 book ai didi

ruby-on-rails - 可以使用 Timecop gem 在 Rails 中进行开发吗?

转载 作者:行者123 更新时间:2023-12-02 21:13:30 25 4
gpt4 key购买 nike

我发现了像 Timecop 这样的时间旅行 gem ,来测试与时间相关的功能。在开发中使用它是否可能和/或明智?

如果没有:还有其他时间旅行者 gem 适合开发吗?我找不到一个。

最佳答案

是的,当然可以。以下是我构建的应用程序中的一些示例代码,您可以在其中通过管理区域设置日期,然后在 session 期间像该日期一样浏览网站:

app/controllers/concerns/time_travel_filters.rb中:

# 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

然后您只需在要使用它的 Controller 中包含 TimeTravelFilters 即可。

您需要设置 session[:timecop_date] 才能生效 - 我通过管理区域页面上的表单来执行此操作,但您可以按照自己的方式进行操作想。返回当前时间就像删除该 session key 一样简单。

关于ruby-on-rails - 可以使用 Timecop gem 在 Rails 中进行开发吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32129741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com