我在控制器中定义了一个包含不同模型的@results
变量,并希望使用<%= render @results
%&gt;在我的视图中渲染它们。
如何为render
方法提供包含这些模型部分的目录的地址。
解决方案
<% @results.each do |result| %>
<%= render "home/partials/#{result.class.name.downcase}", result.class.name.downcase.to_sym => result%>
<% end %>
答案 0 :(得分:1)
渲染将查看当前对象的视图目录:
render 'form' # renders _form.html.erb in same directory
要查看另一个目录,请添加其目录名称:
render 'shared/form' # renders _form.html.erb in views/shared/
由于结果变量显然包含多个模型,因此只需为散列或数组中的每个条目分配一个directory
值,并在视图或控制器中调用它。
根据你问题中非常非常少的信息,这是我能给你的最好的。