如何将内容放在第一个记录栏4下

时间:2015-06-04 03:17:14

标签: ruby-on-rails ruby-on-rails-4

我在Rails 4.我有两个资源:子文章和文章。子粒子嵌套在这样的文章中:

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

在文章显示页面上,我显示了所有子文章。但是,我想将一些文章属性(特别是图片和视频)直接放在第一个子文章下面。

我无法找到有关这样做的任何文档。

另请注意,我有按投票数排序的子粒子。因此,如果一个人被投票高于另一个,那么它将会出现在顶部。但我想在第一个子文章下保留相同的图片和视频。

以下是我的文章展示页面的简化版本:

<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 个答案:

答案 0 :(得分: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 if 条件检查循环索引后,由于循环索引当前为0,那么它将首先显示subarticle第一个内容,然后对于索引0,它显示article内容。

答案 1 :(得分: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 %>