渲染集合时,子类的部分视图的更好路径

时间:2013-08-26 22:06:01

标签: ruby-on-rails view collections path partial

假设我有:

class Edible
end
class Apple < Edible
end
class Orange < Edible
end

我正在渲染这些食物的集合,无论它们的实际类型如何:

<%= render @edibles %>

这很有效,但Rails希望我将这些观点放在apples/appleoranges/orange中。

有没有办法告诉Rails在同一个文件夹中查找视图,例如edibles/appleedibles/orange

2 个答案:

答案 0 :(得分:1)

  def partial
    edible_type.class.name.underscore ##edible type can be apple or orange
  end

<% @edibles.each do |edible| %>
  <%= render( :partial => "edibles/#{edible.partial}", :locals => {:edible => edible}) %>
<% end %>

答案 1 :(得分:0)

您可以在不使用每个

的情况下渲染集合
<%= render partial: "edibles/edible", collection: @edibles, as: :edible %>