4

我有一个 STI 关系,其中对话由消息和图像组成。

现在,当我去渲染它们时,我使用:

<%= render conversation %>

效果很好。它找到给定对象的给定模板并呈现它。

现在对于我的移动网站,我现在只想使用相同的东西,它应该会说:

/mobile/message/_message.html.erb

代替

/message/_message.html.erb

所以在我的控制器中我说:

if mobile?
  prepend_view_path "mobile"
end

确实会调用它,并且它“预先设置了我的视图路径”,当我这样做时我可以看到它正在工作:

raise view_paths.inspect

但是现在当我做我的

<%= render conversation %>

它仍在默认位置,即 /views/ 中查找部分

4

1 回答 1

-1

好吧,这应该可行,但令人沮丧的是不优雅:

<% conversation.each do |c| %>
  <% c_class = c.class.to_s.downcase.underscore %>
  <%= render :partial => "mobile/#{c_class}/#{c_class}", :object => c %>
<% end %>
于 2013-04-02T20:19:29.980 回答