有人用过cell么?

2008-04-02 02:20:55来源: 阅读 ()

新老客户大回馈,云服务器低至5折

非常小,源代码一目了然。感觉虽然有点土,但比自己做个module的方式好一点点
号称: 代替发挥component作用的controller, 这样就不需要邪恶的render_component了

A cell acts as a lightweight controller in the sense that it will assign variables and render a view.


cell可以用session, params, request等方法访问 父控制器的对应参量

但其它局部变量和实例变量 默认不会传到cell里面
The controller's instance variables and params hash are not directly available from the cell or its views.

目录结构:
Java代码 复制代码
  1. app/   
  2.      models/   
  3.      views/   
  4.      helpers/   
  5.      controllers/   
  6.      cells/   
  7.         my_cell.rb  #cell 'controller'  
  8.         my_cell/    #cell 'views'  
  9.             show.html.erb   
  10.             ...  
cell可以用application helper,若要使用其他helper需声明,如:
Ruby代码 复制代码
  1. class ShoppingCartCell < Cell::Base   
  2.      helper :product  
  3.      ....   
  4. end  
使用:
Ruby代码 复制代码
  1. <%= render_cell :my_cell:show %>  




=======================邪恶的component回顾=========================

component 组装页面的使用方式大致如下:
Ruby代码 复制代码
  1. render_component :controller=>..., :action=>..., :params=>{...}  

rails似乎没有提供以path/url作component的方式,所以只好用
Ruby代码 复制代码
  1. render_component ( ActionController::Routing::Routes.recognize_path("/some/action") ) #how ugly!  

想要包含外部页面为组件,其中一个办法是用esi:include标签。。。
只有用render_component才能调用其他action及action之上的过滤器并包含其结果,而且很慢 ...

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:让你用seam new-project创建的项目也能用上JBossTools的功能。

下一篇:Ruby On Rails-2.0.2源代码分析(4)-寻找Controller