Hor*_*ice 6 ruby ruby-on-rails ruby-on-rails-3.2
我有一个控制器,其中有一个“无视”动作。该控制器用于设置一个名为@@ComputedData={}. 但数据是根据应用程序用户上传的 csv 文件计算的。现在用户会看到他们的特定数据还是@@ComputeData所有用户都一样?有人可以向我解释这个概念吗?我真的很犹豫。预先感谢您,并为菜鸟问题感到抱歉。
在 Rails 中使用类变量时要小心。
进程之间不共享类变量,因此您会得到不一致的结果。
有关更多信息,请查看:
您始终可以使用类和类方法为所有用户提供相同的数据:
class Computation
attr_reader :computed_data
@computed_data = 3
end
Run Code Online (Sandbox Code Playgroud)
所以你可以要求Computation.computed_data(将是 3),
但Computation.computed_data = 4会给你一个NoMethodError.
如果你在另一边,如果你想要computed_data每个用户,你应该将它保存在 ActiveRecord 模型中的数据库中(Rails 的典型情况)......