Ruby on rails 在RubyonRails中使用全局数据的Ruby习惯用法是什么?
我有一个RubyonRails应用程序,它需要经常向远程服务器发送HTTP请求。我想让那些有多个客户端的客户端保持在全局范围内,而不是每次创建一个客户端。但我不太清楚应该将客户机阵列存储在哪里? 例如,存储在会话中?或者,ROR已经准备了一个开箱即用的单例模式?首先,ruby本身就具有单例模式的能力。看看这本书 因此,您需要在请求之间持久化的进程内存储 在RubyOnRails中,您可以使用以下选项: 全局变量坏主意,我不知道为什么 类变量不是个好主意,因为它们是通过整个继承树共享的 元类的实例变量 线程内存储thread.current[:随便什么] 在别的地方我忘记了 好主意是在config/initializers/your_initializer.rb中初始化它 我更喜欢第三种选择 下面是您正在寻找的幼稚实现Ruby on rails 在RubyonRails中使用全局数据的Ruby习惯用法是什么?,ruby-on-rails,web-applications,eventmachine,Ruby On Rails,Web Applications,Eventmachine,我有一个RubyonRails应用程序,它需要经常向远程服务器发送HTTP请求。我想让那些有多个客户端的客户端保持在全局范围内,而不是每次创建一个客户端。但我不太清楚应该将客户机阵列存储在哪里? 例如,存储在会话中?或者,ROR已经准备了一个开箱即用的单例模式?首先,ruby本身就具有单例模式的能力。看看这本书 因此,您需要在请求之间持久化的进程内存储 在RubyOnRails中,您可以使用以下选项: 全局变量坏主意,我不知道为什么 类变量不是个好主意,因为它们是通过整个继承树共享的 元类的实例
class EMClient
class << self
attr_accessor :pool
end
@pool = []
end
但每个人都告诉我,类变量在ruby代码中是一种不好的味道。“为什么?”哈利兹,彼此之间存在误解。我已经更新了答案。