2009-11-26 24 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 

您必須在服務器上安裝了這個混帳客戶端安裝到工作;如果沒有,你會得到一個沉默的失敗。