2010-03-15 80 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' %>