检查下一个活动记录是否存在

时间:2016-10-24 10:07:08

标签: ruby-on-rails-4

在帖子控制器中,对象包含所有活动帖子:

@posts = Post.where(status: 'active').order(:name)

在视图中,这个对象是迭代的,我必须根据下一篇文章的存在执行一些操作。

<% @posts.each do |post|
   if post.next_post_exists?
    # do something.
   else
    # delete author. 
   end       
  end 
%>

那么,检查下一篇文章是否存在的最佳方法是什么?

def next_post_exists?
  #TODO
end

2 个答案:

答案 0 :(得分:1)

您可以简单地为当前帖子获取变量,然后检查是否存在下一篇文章。 例如:

<%i=0
@posts.each do |post|
  if @posts[i+1].present?
    #do something
  else
    #delete author
  end
  i+=1
end%>

试试这个并告诉我它是否有效。

答案 1 :(得分:0)

class Post

  def next
    self.class.find_by("id > ?", id)
  end

end

此时你可以这样做:

<% @posts.each do |post|
   if post.next.present?
    # do something.
   else
    # delete author. 
   end       
  end 
%>