当我尝试从帮助器渲染部分时,它会因此(压缩)错误消息而失败:
Missing partial /_cube_icon with [...]. Searched in:
请注意,搜索到的目录列表为空!
相反,在视图中使用渲染时,它知道在哪里看:
Searched in: * "/Users/Lars/GitHub/algdb/app/views"
在帮助程序代码中,我使用ActionController::Base.helpers.render()
。我应该使用其他一些渲染功能吗?我怎么告诉它在哪里寻找偏见?我可以以某种方式设置项目错误吗?
这是Rails 4.2.4·Ruby 2.3.1
答案 0 :(得分:0)
部分文件通常位于app/views
目录中,并且不在Rails的helpers
目录中,正如您从收到的错误消息中看到的那样。为了解决您的问题,我会将_cube_icon
文件移到app/views
目录中并在那里组织您的代码。我建议您阅读Rails文档中有关视图Layouts and Rendering
此外,听起来你可能不熟悉rails,所以我会看看rails提供的约定。 Rails,你可能知道或不知道,是一个固定的框架,这意味着某些事情需要在某些地方进行才能使其发挥作用。以下是Rail的MVC框架Action View Overview的视图部分的另一个资源。希望这会有所帮助。
--- -----更新
如果你真的想从辅助文件渲染部分文件,有几种方法可以做到,但最好使用的方法如下:
在app/helpers
module MyHelper
def custom_render
concat(render(:partial => 'cube_icon'))
end
end
以下是stackoverflow中的一些链接,可以帮助您解决问题。
Rendering a partial from helper #1
答案 1 :(得分:0)
好的,我明白了:
我从帮助程序目录中的代码调用render
,但是从标准SomethingHelper模块中的函数调用不。
遵循该惯例时,事情就开始起作用了。