在我的User
模型中,我有一种显示时间的方法:
def display_time
puts "Time is: #{Time.zone.now}"
end
我为应用程序控制器中的before过滤器中的每个用户设置Time.zone
,然后调用display_time
方法:
def my_before_filter
Time.zone = current_user.time_zone
current_user.display_time
end
我还在我的rake任务(每小时cron作业)的循环中为每个用户设置Time.zone
,然后调用相同的方法:
Users.all.each do |user|
Time.zone = user.time_zone
user.display_time
end
如何确保两个时区设置不会相互干扰?
我希望display_time
方法始终通过应用程序控制器使用Time.zone
集,除非从cron任务的循环中调用它。我怎样才能做到这一点?
提前致谢!
答案 0 :(得分:0)
让display_time取时间参数。
def my_before_filter
Time.zone = current_user.time_zone
current_user.display_time(Time.zone.now)
end
# app/models/user.rb
def display_time(current_time)
puts "Time is: #{current_time}"
end
从您的佣金任务中,发送您想要的current_time
。