我有Post
模型belongs_to
Group
模型。 Group
- s可以有很多Post
个。每个Post
都有一个与之关联的数字(1-5),每个Group
有五个帖子,编号为1-5。我想要一个上一个/下一个按钮来滚动Post
中的每个Group
。
这是我到目前为止所做的:
post.rb
def next_post
Post.where(group_id: group.id).find_each do |post|
post.where("number > ?", number).first
end
end
文章/ show.html.erb
<%= link_to "Next", group_post_path(@group, @post.next_post.first) %>
我收到错误undefined method 'where' for #<Post:0x007f8a7a8613c8>
。
不太清楚该怎么做
答案 0 :(得分:2)
next_post
可以是:
def next_post
group.posts.where("number > ?", number).order(:number).first
end
和视图:
<%= link_to "Next", group_post_path(@group, @post.next_post) %>
答案 1 :(得分:0)
您还可以使用acts_as_list gem,它提供许多设施,包括您的要求。它非常方便,您可能需要检查帖子,如果它是最后一个或第一个,那么它们各自的上一个和下一个不应该出现,否则它将产生错误。