Ruby on rails 在视图中使用新的Rails理念,不再使用控制器。也许更好也许更糟,如果情况太糟,我需要帮助

Ruby on rails 在视图中使用新的Rails理念,不再使用控制器。也许更好也许更糟,如果情况太糟,我需要帮助,ruby-on-rails,Ruby On Rails,Hy 我想我的所有网站都会使用单元格,使用已知的rails插件单元格,所以这是我的想法: 包含3个字段的表:id、视图名称和布局。布局将是一个序列化哈希。 当发出请求时,将请求布局字段,然后在视图中,默认布局将取消序列化布局变量,如下所示: @布局[:sidecol][:gallery]={…它的一些参数…}; @布局[:maincol][:comments]={..params…} 在中,将有一些ruby代码在@layout[:sidecol]上循环并呈现其中的所有单元格。在maincol d

Hy

我想我的所有网站都会使用单元格,使用已知的rails插件单元格,所以这是我的想法:

包含3个字段的表:id、视图名称和布局。布局将是一个序列化哈希。 当发出请求时,将请求布局字段,然后在视图中,默认布局将取消序列化布局变量,如下所示: @布局[:sidecol][:gallery]={…它的一些参数…}; @布局[:maincol][:comments]={..params…}

在中,将有一些ruby代码在@layout[:sidecol]上循环并呈现其中的所有单元格。在maincol div中也会发生同样的情况

你觉得怎么样

在我看来是积极的: 更模块化 控制器仅用于post 容易改变结构 更容易实现某种跟踪,以查看布局是否更好的差异

否定: 还没找到

编辑:

1) 请求来时,计算视图名称

2) 从数据库加载与视图名称对应的布局字段。(这将被缓存,并且只有在进行更改时才会更新。我打算使用这种方式,因为我需要测试布局。33%布局1、33%布局2和33%其他布局。因此将使用随机数选择视图布局。)

3) 布局字段包含:first subdivision是要创建的div的名称,然后在每个div中都有多个组件(在本例中为命名单元),这些组件将在应用程序控制器中实例化,因为将对所有get请求重复

4) 在视图中,将创建div,并在定义的每个单元格中呈现

5) 该单元将向数据库发出请求并加载数据


6) 然后,单元格将呈现HTML并准备就绪

所以。。。在讨论MVC时,您应该了解控制器层可能是实际完成任务的所有层中最关键的一层。控制器层用于实际完成框架内的任何工作

有很多方法可以放弃单一MVC作为您的主要模式,例如,构建一组相互通信的服务,但即使这样,也主要放弃单一MVC,因为您可以将MVC模式下推到每个组件中

关于您的具体建议,在数据库中存储布局数据(请求之间很少更改)是一个不必要的性能损失。必须将布局从数据库中拖出,取消序列化并运行它,这将要求您要么设置缓存框架,要么进行疯狂的数据库扩展


顺便说一句,Rails3和Merb(我认为甚至Rails2)在控制器层都具有足够的模块化,它们并不真正关心布局/模板/视图内容来自何处。如果你真的愿意,你可以告诉他们呈现一个字符串。

需要更多的解释来理解它与partials的根本区别,除了在数据库中保留序列化哈希(你知道这是一种弊端,对吧?)主要问题中有更多的解释