render_component替代方案

时间:2009-11-26 08:53:57

标签: ruby-on-rails

在route.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,但我想知道另一个解决方案。

感谢。

2 个答案:

答案 0 :(得分:0)

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

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

如果您决定继续使用组件,请记住现有的插件不适用于Rails 2.3。您应该进行一些更改才能使其正常工作。

答案 1 :(得分:0)

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

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

临时解决方案是安装render_component插件:

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

您必须在服务器上安装git客户端才能使此安装正常运行;如果不是你会得到一个沉默的失败。