“render:partial”在自己调用时无法找到文件

时间:2016-05-12 10:08:10

标签: ruby-on-rails ruby ruby-on-rails-2

我有一个 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

0 个答案:

没有答案