加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails控制器中实例变量的范围是什么?

发布时间:2020-12-17 03:42:25 所属栏目:百科 来源:网络整理
导读:如果我在Rails控制器中创建一个实例变量,那么该实例变量的范围是什么?是否可用于所有Rails应用程序,或仅用于与该特定控制器关联的视图和模型?由于我是Rails的新手,我有点困惑. 解决方法 Rails控制器中的实例变量以两种方式使用: 它可以在该控制器的实例方
如果我在Rails控制器中创建一个实例变量,那么该实例变量的范围是什么?是否可用于所有Rails应用程序,或仅用于与该特定控制器关联的视图和模型?由于我是Rails的新手,我有点困惑.

解决方法

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

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

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

给定控制器中的实例变量在其他控制器,其他控制器视图或任何模型中都不可用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读