2009-11-26 27 views
0

我已经把:render_component替代在routes.rb中

map.connect '/:alias', :controller => 'cores' ,:action=>"view" 

这个别名是连接有3个型号:在我的核心控制器,我用render_component相对于该模型的描绘事件的地方和艺术家 。

if(core = Core.find(:first, :conditions => ["alias = ?", params[:alias]])) 
     type = core.class.to_s.downcase   
     render_component(:controller => type, 
         :action => "view", 
         :id => core.id.to_s, 
         :params => params)  
end 

在rails 2.3中render_component已被弃用。但是,这样做的解决方案是什么?

我看到有一个插件用于重用render_component,但我想知道另一个解决方案。

谢谢。

回答

0

唯一的解决方案是重新设计您的架构,以避免组件。

我必须维护一个基于组件的应用程序,我不得不说这是一个真正的噩梦。我最近将应用程序升级到Rails 2.3,我非常期待尽快终止组件集成。

如果您决定继续使用组件,请记住现有的插件不适用于Rails 2.3。你应该做一些改变才能使它工作。

0

还有另一个部分解决方案。

我在“临终关怀”模式下寻找Rails应用程序,所以虽然正确的答案是重新设计以避免组件,但我需要支持render_component,同时升级到Rails 2.3。

一个临时的解决办法是安装render_component插件:

script/plugin install git://github.com/lackac/render_component.git -r rails-edge 

您必须在服务器上安装了这个混帐客户端安装到工作;如果没有,你会得到一个沉默的失败。