我有一个名为Post的模型,属于另一个名为Group的模型。因此,目前用户可以导航到组并创建帖子,帖子显示在正确的视图下。但是,我正在试图弄清楚如何使帖子按降序显示,以便最新的帖子在该特定组的顶部。
这是在posts_controller中。当我去... / groups /:id / posts时,它会正确地按降序排列它们但是我需要帖子显示降序... / groups /:id
# GET /groups/:group_id/posts
def index
@posts = @group.posts.order("created_at desc")
end
这是在groups / show.html.erb视图中。有没有办法在@group.posts.each
上添加降序?
<%= link_to 'New Post', new_group_post_path(@group.id) %>
<!-- gets posts for the group -->
<div class="row">
<% @group.posts.each do |post| %>
<div class="col-lg-12">
<div class="card bottom-pad">
<div class="card-body">
<h4 class="card-title"><%= link_to post.title, group_post_path(@group, post), class: "text-primary" %></h4>
<p class="card-text"><%= truncate(post.content, length: 500) %><br><br>
<%= post.user.last_name %>
</p>
</div>
<div class="card-footer">
<small class="text-muted"><%= time_ago_in_words(post.created_at) + " ago" %></small>
</div>
</div>
<br><br>
</div><!--./col-->
<% end %><!--./@group.posts.each-->
</div><!--./row-->
答案 0 :(得分:3)
您可以在show.html.erb
中按照以下顺序进行排序:
<%= link_to 'New Post', new_group_post_path(@group.id) %>
<!-- gets posts for the group -->
<div class="row">
<% @group.posts.order(created_at: :desc).each do |post| %>
<div class="col-lg-12">
<div class="card bottom-pad">
<div class="card-body">
<h4 class="card-title"><%= link_to post.title, group_post_path(@group, post), class: "text-primary" %></h4>
<p class="card-text"><%= truncate(post.content, length: 500) %><br><br>
<%= post.user.last_name %>
</p>
</div>
<div class="card-footer">
<small class="text-muted"><%= time_ago_in_words(post.created_at) + " ago" %></small>
</div>
</div>
<br><br>
</div><!--./col-->
<% end %><!--./@group.posts.each-->
</div><!--./row-->