我正在关注实施Facebook API的RailsCast。在User
模型中,我有一个方法:
def facebook
@facebook ||= Koala::Facebook::API.new(oauth_token)
创建一个即时变量,可以与User模型中的其他方法共享。
我的问题是:
如果我的Rails应用在线有100个用户,每个用户都会创建一个实例@facebook
,Rails如何知道哪个@facebook
与用户相关联?
答案 0 :(得分:1)
没有。每次点击链接,发送请求时,网络应用中都没有“在线”这样的内容。对于该请求,将实例化所有类,包括运行您发布的代码。
请求完成后,这些类将被处理掉。
答案 1 :(得分:1)
实例变量与它们所属的对象的实例相关联。
用户与他们自己的User
实例进行交互,因为它与其会话或特定请求相关联。使用特定于请求的控制器实例处理请求,这些控制器实际上处理User
的特定实例,因此@facebook
值。