我正在使用相同的模型構建圖像,視頻和文本帖子的源。 對於圖像文章,我有一個圖像列,文本一個正文字段,併爲視頻一個網址。我對每種類型的帖子都有單獨的部分。現在我正在通過這樣的帖子循環:循環播放不同類型的文章
<% @posts.each do |post| %>
<% if post.image.present? %>
<%= render 'image_post' %>
<% elsif post.body.present? %>
<%= render 'text_post' %>
<% else %>
<%= render 'video_post' %>
<% end %>
<% end %>
它開始變得雜亂,如果我添加任何更多類型的職位。有一個更好的方法嗎?
另外,假設我想循環播放視頻文章。我可以使用video_url存在而不是循環發佈帖子嗎? HTTP:
<% @posts.each do |post| %>
<% if post.video_url.present? %>
<%= render 'video_post' %>
<% end %>
<% end %>
這是一個很大的原因,瞭解單個表的傳承,你可以添加一個評判: //samurails.com/tutorial/single-table-inheritance-with-rails-4-part-1/。你在談論'類型'的職位。在OO設計中,這是一個明確的指標,您需要將您的對象分類。一旦你這樣做,這個問題將大大簡化。 –
嘿喬,我研究了這一點,並認爲這是更好的方式,但對於我的特定項目,使用一個模型更容易和更快(和臨時)。 (還是)感謝你的建議。 – user2759575