2016-10-24 2 views
1

В контроллере сообщений объект содержит все активные сообщения:Проверьте следующую активная запись существует

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

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

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 
%> 
Смежные вопросы