我有一个 rails 2.2.2 应用,但有以下奇怪的问题。
有一个.js.rjs
文件,它被渲染为生成javascript作为对.js格式查询的响应。
如果我这样做,它可以正常工作:
page.replace_html "search-results-resources-paginated", :partial => "search/discover_results"
即,它会呈现app/views/search/_discover_results.html.erb
部分(后者调用其他部分)。这一切都很好。
但是,我想将其分解为几个步骤,我将部分渲染为文本字符串,然后在javascript中使用该字符串(我只是想做一些额外的调试)。
我正试图这样做:
text = render(:partial => "search/discover_results")
page.replace_html "search-results-resources-paginated", :text => text
现在开始抱怨无法找到部分:
ActionView::TemplateError (Missing template search/_discover_results.erb in view path
/app/views:
<project folder>/app/views/community:
<project folder>/vendor/plugins/savage_beast/app/views:
<project folder>/vendor/plugins/exception_notification/app/views:
<project folder>/vendor/plugins/query_reviewer/lib/query_reviewer/lib/query_reviewer/views:
) on line #49 of app/views/search/discover.js.rjs:
(为了清楚起见,我将上面的内容格式化了一点)
如果我告诉渲染实际的文件扩展名,如下:
text = render(:partial => "search/discover_results.html.erb")
然后它发现第一个部分,但我得到与它引用的其他部分相同的问题。就像render
不知道它应该在寻找html.erb
个文件,而不仅仅是.erb
个文件。
我需要传递给render
才能使其有效吗?
谢谢,Max