-1

下面的代码能不能写得更简洁简洁?

<% if Post.all.count > 0 %>                                                                                                                                                                              
  <% for post in Post.all do %>
    Display my post
  <% end %>
<% else %>
  <p>No one has posted anything yet.</p>
<% end %>
4

3 回答 3

3

我使用#exists我认为比计数和使用#each而不是 for 循环更快的方法。我#find_each在下面使用,以便按批次获取 1000 个。

<% if Post.exists? %>
  <% Post.find_each do |post| %>
    Display my post
  <% end %>
<% else %>
  <p>No one has posted anything yet.</p>
<% end %>
于 2013-02-06T06:15:17.593 回答
3

在后控制器中

@posts = Post.find(:all)

在查看页面

<% @posts.each do |post|%> Display post <% end %>

<p><%= "No one has posted anything yet." if @posts.present?  %></p>

请试试这个..

于 2013-02-06T06:42:43.553 回答
0

在使用之前使用枚举器迭代器for loop加载帖子(在控制器的操作内)的更好方法:

# PostsController#index
@posts = Post.all  
# instead of Post.all you be able to use different options like:
# filtering, pagination and ordering
@posts = Post.where(:published => true).order("created_at DESC")

# index.html.erb
<% if @posts.present? %>                                                                                                                                                                              
  <% @posts.each do |post| %>
    Display my post
  <% end %>
<% else %>
  <p>No one has posted anything yet.</p>
<% end %>
于 2013-02-06T06:17:00.660 回答