Inny wygląd posta dla określonego typu

Witam,

Mam model Post, w którym przechowuje newsy. Newsy mogą być różnego rodzaju: Normal, Fotostory, Videostory. Wszystkie newsy mam zamiar wyświetlić na jednej stronie, a wygląd poszczególnego posta chcę uzależnić od jego typu. Póki co przyszło mi do głowy tylko jedne rozwiązanie, aby w widoku przy wyświetlaniu każdego elementu sprawdzać jego rodzaj i w zależności od niego “odpalać” inny partial. Przykładowy kod:

<%= @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 %>
To rozwiązanie wydaje mi się bardzo nieeleganckie. Dałoby radę to rozwiązać w inny sposób?

@posts.each do |post| render "posts/#{post.content_type}", :content => post end

Chwilowe zaćmienie, dzięki za rozjaśnienie :wink: