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

ruby-on-rails – 为什么使用实例变量将控制器与视图“连接”?

发布时间:2020-12-16 19:03:26 所属栏目:百科 来源:网络整理
导读:这是一个概念性问题,我无法在SO中找到答案,所以我在这里: 为什么实例变量用于连接控制器和视图?我们不是有两个不同类的两个不同对象(Controller vs Views).因此,当渲染视图时,我们处于不同的上下文中,但我们正在使用另一个对象的实例变量?这不是以某种方
这是一个概念性问题,我无法在SO中找到答案,所以我在这里:

为什么实例变量用于连接控制器和视图?我们不是有两个不同类的两个不同对象(Controller vs Views).因此,当渲染视图时,我们处于不同的上下文中,但我们正在使用另一个对象的实例变量?这不是以某种方式破坏封装吗?

Rails如何设法从一个对象到另一个对象进行匹配?它是否将控制器的所有实例变量克隆到视图中?

解决方法

从某种意义上说,你可以说它破坏了封装.我发现如果你不小心,很容易在Rails中将你的业务/表示逻辑混合在一起.它通常在我编写视图模板时开始,并发现我需要一些我没有从控制器传递的值.所以我回去,调整控制器以适应视图中的需要.经过一次调整,另一次调整和另一次调整之后,你会看一下控制器方法,并设置各种不合理的实例变量,除非你查看视图以查看它们的用途.因此,您最终会遇到需要同时查看控制器和视图才能理解的情况,而不是孤立地采取其中一个或另一个.

我认为使用实例变量(连同Binding技巧)只是一种方法,可以将您需要的任何值从控制器传递到视图,而无需事先声明参数(就像定义方法时那样).没有声明意味着要编写更少的代码,并且当你想重构和重组事物时,没有更改.

(编辑:李大同)

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

    推荐文章
      热点阅读