在Rails 3中从另一个部分的另一个文件夹中渲染部分文件

时间:2011-08-19 16:44:47

标签: ruby-on-rails partial

例如: 我有两个模型:TaskListTask belongs_to List。 我在lists/_form.html.erb内呈现lists/show.html.erb view部分。 现在我需要在tasks/_fields.html.erb部分内部lists/_form.html.erb部分呈现:

<%= render 'tasks/fields' %>

但我收到错误ActionView::MissingTemplate

如果我尝试在tasks/_fields.html.erb内渲染lists/_form.html.erb,一切正常。

我认为有两种不好的方法可以解决这个问题:

有好办法吗?

4 个答案:

答案 0 :(得分:40)

试试这个:

<%= render :partial => 'tasks/fields' %>

答案 1 :(得分:6)

如果您要分享此类内容,为什么不将它们放入app/views/shared/这样的文件夹中或直接放入app/views/layouts

答案 2 :(得分:1)

基于@ArunKumarArjun,但具有新的Rails表示法:

<%= render partial: 'tasks/fields' %>

答案 3 :(得分:0)

对于Rails 5及更高版本

您最好像这样使用渲染器:

<% render 'tasks/fields' %>

因为partial可能导致此kind of issues,并且不再需要