gpt4 book ai didi

ruby-on-rails - Ruby on Rails Controller 中的@@variables 是特定于用户 session 的,还是所有用户都会看到相同的值?

转载 作者:数据小太阳 更新时间:2023-10-29 07:45:06 26 4
gpt4 key购买 nike

我有一个 Controller ,其中有一个“无 View ”操作。该 Controller 用于设置名为 @@ComputedData={} 的变量。但数据是根据应用程序用户上传的 csv 文件计算的。现在用户会看到他们的特定数据还是 @@ComputeData 对所有用户都一样?有人可以向我解释这个概念吗?我真的很犹豫。预先感谢您,对于菜鸟问题​​深表歉意。

最佳答案

在 Rails 中使用类变量要小心。

类变量不在进程之间共享,因此您会得到不一致的结果

有关更多信息,请查看:

  1. O'Reilly Ruby - Don't Use Class Variables!
  2. Why should we avoid using class variables @@ in rails?

您始终可以使用类和类方法为所有用户提供相同的数据:

class Computation
attr_reader :computed_data
@computed_data = 3
end

所以你可以请求 Computation.computed_data(将是 3),

但是 Computation.computed_data = 4 会给你一个 NoMethodError

如果你在另一边,如果你想要每个用户的 computed_data,你应该将它保存在 ActiveRecord 模型中的数据库中(Rails 的典型情况)......

关于ruby-on-rails - Ruby on Rails Controller 中的@@variables 是特定于用户 session 的,还是所有用户都会看到相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22185121/

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