在帖子控制器中,对象包含所有活动帖子:
@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
答案 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
%>