2015-06-04 58 views
1

我在Rails 4上。我有兩個資源:子文章和文章。 Subarticles嵌套在文章像這樣:如何把內容放在第一個記錄欄下4

resources :articles do 
    resources :subarticles do 
     member do 
     put "like" => "subarticles#upvote" 
     put "dislike" => "subarticles#downvote" 
     end 
    end 
    end 

在文章頁面顯示,我顯示所有subarticles的。但是,我想直接在第一個子文件下放置一些文章屬性(特別是圖片和視頻)。

我在查找任何文檔時遇到問題。

另請注意,我有按票數排序的小節。所以如果一個人得票率高於另一個,那麼他會進入榜首。但我想在第一個子文件下保留相同的圖片和視頻。

這裏是我的第二條顯示頁面的一個簡化版本:

<div class="row"> 
    <div class="col-md-9"> 

    <div class="well" style="background:white; height:230px"> 
     <%= @article.title.titleize %><br> 
     <%= social_share_button_tag %> 
    </div> 

    <% @subarticles.each do |subarticle| %> 
     <div class="well" style="background:white"> 
     <%= subarticle.rating %><br> 
     <%= subarticle.whyrating %><br> 
     <div class="row" style="margin-top:40px;"> 
      <div class="col-md-7 col-md-offset-1" style="margin-top:30px"> 

      <%= link_to like_article_subarticle_path(@article, subarticle), class: "like", method: :put do %> 
      <button type="button" class="btn btn-success btn-lg" aria-label="Left Align" style="margin-right:5px"> 
       <span class="glyphicon glyphicon-thumbs-up" aria-hidden="true"></span> Helpful 
      </button><span class="badge" style="margin-right:10px"><%= subarticle.get_upvotes.size %></span> 
      <% end %> 

      <%= link_to dislike_article_subarticle_path(@article, subarticle), class: "like", method: :put do %> 
      <button type="button" class="btn btn-danger btn-lg" aria-label="Left Align" style="margin-right:5px"> 
       <span class="glyphicon glyphicon-thumbs-down" aria-hidden="true"></span> Unhelpful 
      </button><span class="badge"><%= subarticle.get_downvotes.size %></span> 
      <% end %> 

      </div> 
     </div> 
     </div> 
    <% end %> 

    <div class="well" style="background:white; text-align:center"> 
     <h4>Pictures & Videos</h4><br> 
     <%= image_tag @article.image1(:medium) %><br> 
     <div class="embed-responsive embed-responsive-4by3"> 
     <iframe class="embed-responsive-item" src="<%= @article.video1 %>"></iframe> 
     </div> 
    </div> 

    </div> 
</div> 

因爲@subarticles.each do它會推圖片和視頻一路底部。什麼是最好的方式來顯示只是第一個子項,然後圖片&視頻,然後其他的子粒?

讓我知道是否需要顯示任何其他代碼。

回答

2
<% @subarticles.each_with_index do |subarticle, i| %> 
    <div class="well" style="background:white"> 
    ....... // subarticle contents 
    </div> 

    <% if i==0 %> 
    // put articles content here 
    <% end %> 
<% end %> 

在第一subarticle如果條件之後這種方式檢查循環索引,作爲循環索引是當前爲0,那麼它會首先顯示subarticle第一內容,則對於索引0它顯示了article內容。

+0

非常感謝您一直停留在這一段時間。 – Kathan

+0

@Kathan,不客氣。 :) – Emu

1

您可以隨時使用標誌爲:

<% first_one = false %> 
<% @subarticles.each do |subarticle| %> 
    <div class="well" style="background:white"> 
    ... 
    </div> 

    <% unless first_one %> 
    // article contents here.... 
    <% first_one = true %> 
    <% end %> 
<% end %> 
相關問題