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