gpt4 book ai didi

ruby-on-rails - 在多个用户命名空间中处理 rails 时区,还有 around_action 是如何工作的?

转载 作者:行者123 更新时间:2023-12-04 16:57:31 26 4
gpt4 key购买 nike

我有一个带有多个 namespace 的 rails 应用程序,例如用户、管理、管理员。这意味着我有 current_user、current_management、current_admin。

  • 我应该如何处理这些不同用户命名空间的时区设置。我读了这个( https://robots.thoughtbot.com/its-about-time-zones ),但它显示了 current_user。我应该如何处理 current_management ?
  • 在这种情况下,“around_action”实际上做了什么?如果用户更新时区,会发生什么,或者我应该明确设置什么?
  • 当我显示时间时,我应该总是做 in_time_zone 吗?如果我需要这样做,为什么要有应用程序 Controller 代码?

  • https://robots.thoughtbot.com/its-about-time-zones

    这是它要求放入应用程序 Controller 的代码
    # app/controllers/application_controller.rb
    around_action :set_time_zone, if: :current_user

    private

    def set_time_zone(&block)
    Time.use_zone(current_user.time_zone, &block)
    end

    它说像这样在当前时区显示
    <%= time.in_time_zone(current_user.time_zone) %>

    最佳答案

  • 你不能只用current_management.time_zone反而?
  • around_action将执行块传递给 Time.use_zone ,更改 Controller 操作和 View 内部的时区,但不在外部更改。
  • 您不必使用 around_action如果您使用 in_time_zone (反之亦然)。这会将时间对象转换为给定的时区。我相信in_time_zone是更安全的解决方案。
  • 关于ruby-on-rails - 在多个用户命名空间中处理 rails 时区,还有 around_action 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37640518/

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