2011-04-08 80 views
7

早上好, 作为Rails和Web开发的初学者,我不知道如何阐述我的问题,所以请随意改述。Rails:控制器实例变量是如何工作的

我读过Rails中的视图通过控制器中的实例变量获取数据。我还读了为每个请求创建了控制器实例。 所以我的问题是如何轨道知道哪些视图获取哪些值假设多个同时请求? 由于每个控制器实例是共享的,因此将值放入实例变量中是否明智?

回答

10

答案就在你的问题我的朋友:

是在每次请求创建的控制器的intance。因此,每个请求 - 每个用户在Firefox浏览器,每个Ajax请求等 - 将实例化一个新的控制器。这是MVC中的规则,即控制器应该对每个请求都是无状态的。这是你的答案。

+0

谢谢。我认为每个请求都可能由一个新线程处理,因此实例变量将被共享(如Java中的servlet) – rob 2011-04-08 16:23:44

+0

当然。请接受我的答案(只在我的答案的投票数下面)。 – 2011-04-08 16:26:07

+0

非常有帮助。谢谢。 – rob 2011-04-08 16:30:49