2013-04-02 84 views
4

我有一個STI關係,對話由消息和圖像組成。部分集合渲染軌道更改路徑

現在,當我去使它們使用:

<%= render conversation %> 

它可以完美運行。它找到給定對象的給定模板並呈現它。

現在對於我的移動網站,我想用同樣的事情只是現在它應該找到說:

/mobile/message/_message.html.erb 

,而不是

/message/_message.html.erb 

所以在我的控制,我說:

if mobile? 
    prepend_view_path "mobile" 
end 

哪個確實被調用,它「prepends我的視圖路徑」,我可以看到我工作時:

raise view_paths.inspect 

但是現在,當我做我的

<%= render conversation %> 

它仍然是尋找在默認的位置,即/視圖/爲偏

回答

-1

那麼,這應該工作,但它是令人不安的不雅:

<% conversation.each do |c| %> 
    <% c_class = c.class.to_s.downcase.underscore %> 
    <%= render :partial => "mobile/#{c_class}/#{c_class}", :object => c %> 
<% end %> 
+0

是的,但我不能做這個,因爲性病。這樣做會中斷渲染,因爲現在當渲染圖像對象時,它會嘗試在消息部分 –

+0

中執行它。我懂了。我想你可以使用會話類來派生部分路徑(參見編輯)。它確實感覺像是有更好的辦法。 – MrTheWalrus

+0

這仍然不會按預期工作。對話是一個數組。你的語法也需要做:<%= render partial:「mobile/conversation_class」,collection:conversation%> –