我有一个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 /答案 0 :(得分:-1)
嗯,这应该有用,但是它很不优雅:
<% conversation.each do |c| %>
<% c_class = c.class.to_s.downcase.underscore %>
<%= render :partial => "mobile/#{c_class}/#{c_class}", :object => c %>
<% end %>