2016-03-06 51 views

回答

7

在Rails控制器中的实例变量以两种方式使用:

  • 它是控制器(包括超类的实例方法)的实例方法中可用的,就像任何其他Ruby实例变量。
  • 当Rails控制器操作呈现视图时,控制器的实例变量被复制(浅)到视图实例。 (视图实例是模板中的self的值。)因此,在操作呈现时定义的控制器实例变量在该操作的视图中可以有效使用。视图助手只是由视图实例扩展的模块,因此控制器实例变量在视图帮助器方法中也是有效可用的。

    请注意,虽然控制器实例变量被复制到视图,但视图中定义的实例变量不会被复制回控制器。这不是你通常需要发生的事情,因为渲染视图通常是控制器操作中完成的最后一件事。并且视图中定义的局部变量在整个视图中都是可用的,因此在视图中定义实例变量没有任何理由。

在一个给定的控制器的实例变量不是其它的控制器中可用的,其他控制器的观点内,或在在所有的任何模型。

相关问题