在我的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 任务的循环中调用它。我怎样才能做到这一点?
提前感谢!
Make 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
。