我有一个名为posts的资源,其中有很多。但是,每个帖子可以有多个标签。我希望用户只能从选择的标记中转到上一篇文章和下一篇文章。我在之前的数据库中使用过所有文章,但是当我点击一个标签并显示了所有标签时,prev/next不遵守标签。Rails 5上一篇或下一篇文章只从某个标记
如果我访问与routes.rb,get 'tags/:tag', to: 'posts#index', as: :tag
中定义的代码相关联的url,它将列出索引中的所有标签。我不希望这样,我希望用户能够点击上一个或下一个,并且只对与标签关联的帖子执行此操作。
注:我使用的是friendly_id宝石
控制器/ posts_controller.rb
def index
@posts = Post.all
if params[:tag]
@posts = Post.tagged_with(params[:tag])
else
@posts = Post.all
end
end
型号/ post.rb
# tags
acts_as_taggable # Alias for acts_as_taggable_on :tags
def next
Post.where("id > ?", id).order(id: :asc).limit(1).first
end
def prev
Post.where("id < ?", id).order(id: :desc).limit(1).first
end
show.html .erb
<%= link_to "← Previous Question", @post.prev, :class => 'button previous-question' %>
<%= link_to "Next Question →", @post.next, :class => 'button next-question' %>
的routes.rb
# TAGS
get 'tags/:tag', to: 'posts#index', as: :tag
',但是当我点击广告代码,并显示所有tags'你能解释一下痘痘吗?它会显示所有标签?你能为此添加代码吗? –
我已更新帖子@NarasimhaReddy – mazing
因此,当标签被点击并且其相关帖子被显示时,你想为这些帖子列表分页? – arjun