在Post模型中,我有一個屬性,如「content_type」。不同類型的帖子應該以不同的方式顯示在同一個列表中。現在我只有一個想法做到這一點:不同類型的內容的不同部分
<%=
@posts.each do |d|
if d.content_type == "NormalStory"
render :partial => 'posts/normal', :locals => { :content => d }
elsif d.content_type == "FotoStory"
render :partial => 'posts/foto', :locals => { :content => d}
elsif d.content_type "VideoStory"
render :partial => 'posts/video', :locals => { :content => d }
end
end
%>
你能推薦我更'優雅'的東西嗎?
我第二種方法。您基本上爲「content_type」值和部分名稱設置約定,因此您可以添加更多類型而無需觸摸代碼。其他答案都需要您在添加新內容類型時編輯代碼。雖然,在編寫一個輔助方法之前,我會查看一下'ActionController :: Responder'(http://api.rubyonrails.org/classes/ActionController/Responder.html)。 – David