【问题标题】:RubyOnRails : read parameter from the database onceRubyOnRails : 从数据库中读取一次参数
【发布时间】:2021-01-18 13:40:24
【问题描述】:

这在 RubyOnRails 中是如何发生的:
参数存储在数据库中。
程序需要在用户登录时从数据库中读取一次并将它们保存在全局变量中。
当用户工作时,他只使用这个变量,并且程序不会再次从数据库中读取参数,仅在用户下次登录系统时使用。
它是如何实现的。
(已编辑)
如果有一个没有会话的解决方案怎么办?
home_controller:在用户会话开始时只运行一次吗?

【问题讨论】:

  • 为什么要将此参数存储在全局变量中?用例是什么?
  • 为什么不直接保存用户会话并生成必要的查询?
  • 参数值可能会改变。我不想在程序中更改它,而是在用户登录时从数据库中获取一次。如果没有会话的解决方案怎么办?
  • Karim Tarek: main Q. 从数据库中读取一次;它将在模型、控件、助手和视图中使用。
  • 如果有其他用户登录会发生什么?使用相同的全局变量?使用不同的变量?如果用户在完成后没有注销怎么办?几天后返回时仍然使用相同的变量吗?

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-5


【解决方案1】:

您可以将其存储在会话哈希中

class ApplicationController
  def my_variable
    session[:my_variable] ||= MyFile.find(1).my_variable
  end
end  

应用只需要检索一次,即登录用户第一次引用my_variable 方法。之后,即使数据库值发生变化,它也会使用检索到的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多