【问题标题】:undefined local variable or method `set_timezone' for controller error in ruby on railsruby on rails 控制器错误的未定义局部变量或方法“set_timezone”
【发布时间】:2012-11-15 10:49:47
【问题描述】:

我正在为使用 ENV["TZ"] = time_zone 的用户设置时区,其中 time_zone 是该用户的时区。我在表中还有一个名为 'time_zone' 的列,其中保存了该用户的时区。
现在我想在他的时区检索该用户的事件。
在模型中检索我的代码:

  def set_timezone
   Time.zone = current_user.time_zone || "Asia/Kolkata"
  end 

我的控制器:

before_filter :set_timezone

但我收到此错误undefined local variable or method 'set_timezone' for SchedulersController:0x533fa78
任何想法可能是什么问题?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 timezone


    【解决方案1】:

    您也可以将闭包/块作为参数传递给before_filter,如下所示:

    before_filter do
      Time.zone = current_user.time_zone || "Asia/Kolkata"
    end
    

    【讨论】:

    • 不,这是控制器行为 :)
    • 现在我得到未定义的方法时区
    • 我认为您希望将 User 的 time_zone 保留为持久属性,因此将其添加到在数据库中创建用户字段的迁移中,它会自动将 setter/getter 方法添加到您的模型中。
    • 我在这里发现了一个类似的问题:stackoverflow.com/questions/4269270/…
    • 你也可以阅读这篇文章:databasically.com/2010/10/22/…
    猜你喜欢
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多