Проверьте, существует ли следующая активная запись

#ruby-on-rails-4

#ruby-on-rails-4

Вопрос:

В контроллере posts объект содержит все активные записи:

 @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
  

Ответ №1:

Вы можете просто взять переменную для текущей записи, а затем проверить наличие следующей записи. Например:

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

Попробуйте это и дайте мне знать, если это сработает.

Ответ №2:

 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 
%>