我有 STI 关系,其中对话由消息和图像组成。
现在,当我去渲染它们时,我使用:
<%= render conversation %>
这工作完美。它找到给定对象的给定模板并呈现它。
现在对于我的移动网站,我只想使用相同的东西,现在它应该找到说:
/mobile/message/_message.html.erb
代替
/message/_message.html.erb
所以在我的 Controller 中我说:
if mobile?
prepend_view_path "mobile"
end
确实被调用了,并且它“预先设置了我的 View 路径”,当我这样做时,我可以看到它正在工作:
raise view_paths.inspect
但是现在当我做我的
<%= render conversation %>
它仍在寻找默认位置,即/views/部分
最佳答案
嗯,这应该可以工作,但它非常不优雅:
<% conversation.each do |c| %>
<% c_class = c.class.to_s.downcase.underscore %>
<%= render :partial => "mobile/#{c_class}/#{c_class}", :object => c %>
<% end %>
关于ruby - rails更改部分集合渲染的路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15773185/