2010-03-15 114 views
1

我嘗試從插件渲染部分文件後,出現缺少模板錯誤。我已經包含以下文件:Rails:從插件呈現部分文件

%w{ models controllers helpers views }.each do |dir| 
    path = File.join(File.dirname(__FILE__), 'app', dir) 
    $LOAD_PATH << path 
    ActiveSupport::Dependencies.load_paths << path 
    ActiveSupport::Dependencies.load_once_paths.delete(path) 
    end 

模型越來越加載,但對於其他的事情我不知道發生了什麼事。助手不會被加載,因爲我剛剛從插件中複製了部分內容而不是render:partial =>然後它出現了一個助手錯誤。

的問題是如何能夠:呈現:在我的插件

+0

你可能想看看你的environment.rb中的config.load_paths在啓動時加載額外的目錄。 – Chris 2010-03-15 16:45:09

+0

好主意,但我正在尋找開箱即用的解決方案 – s84 2010-03-15 23:34:19

回答

1

部分=>從視圖文件夾插件的觀點,你通常只是將它們複製到您的app/views目錄,或者爲你的插件安裝程序拷貝。與模型和控制器相同,視圖不適用於$LOAD_PATH

+0

好的。我想這個解決方案是可以的,因爲開發人員不需要做任何事情,只需要一個耙子就可以將它們移動到應用程序應用程序中,而不是插件的應用程序,但我寧願讓它在插件應用程序中工作。 – s84 2010-03-15 23:32:20

+0

構建插件的rails指南顯示模型,控制器和幫助器都可以訪問,但它不解釋視圖。 – s84 2010-03-15 23:32:53

+0

我曾經絆倒過另一個說法,意見將被加載,但它沒有例子。 – s84 2010-03-15 23:33:24

0

In Rails 2.3。*你的vendor/plugins/XXXX/app/views /目錄會自動包含在加載路徑中。給出下面的插件結構,所以當:

供應商/插件/ your_plugin /應用/視圖/共享/ _box.html.erb

Yuppie! 

你能夠把這個部分從,例如,app/views/site/index.html.rb像這個:

<%= render 'shared/box' %>