私は多くの人が投稿するという名前のリソースを持っています。ただし、各投稿は複数のタグを持つことができます。選択したタグからのみ、以前の投稿と次の投稿に移動できるようにします。私は以前のデータベースのすべての投稿のために働いていますが、タグをクリックしてすべてのタグを表示すると、prev/nextはタグの内容に従いません。Rails 5前または次の投稿特定のタグからのみ
routes.rbに定義されているコードget 'tags/:tag', to: 'posts#index', as: :tag
に関連付けられたURLにアクセスすると、インデックス内のすべてのタグが一覧表示されます。私はこれを望んでいない、私は、ユーザーが前または次をクリックすることができますし、タグに関連付けられているポストでのみ行うことができます。
注:私は
コントローラ/ 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 friendly_id宝石を使用しています.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
'私は、タグをクリックすると、それはあなたがlitle多くを説明することができ、すべてのtags'を示していたときに?どこにすべてのタグが表示されますか?これのためのコードを追加できますか? –
投稿を更新しました@NarasimhaReddy – mazing
タグをクリックして関連する投稿が表示されたときに、それらの投稿の一覧をページ分割する必要がありますか? – arjun