0
私はacts_as_taggableを正しく動作させました。私は新しい投稿を作成するときにタグを追加することができ、投稿を見るときにすべてのタグを見ることができます。私がしようとしているのは、特定のタグのナビゲーションリンクを作成することです。たとえば、「映画」と言うナビゲーションリンクが必要です。リンクをクリックすると、作成したすべての投稿にタグ「映画」が表示されます。これはあなたがナビゲーションボタンがリンクすることができますカスタムルートを作成することができますタグacts_as_taggableを使用して、同じタグのすべての投稿にリンクします
acts_as_taggable # Alias for acts_as_taggable_on :tags
extend FriendlyId
friendly_id :title, use: :slugged
belongs_to :author
scope :most_recent, -> { order(published_at: :desc) }
scope :published, -> { where(published: true) }
scope :with_tag, -> (tag) { tagged_with(tag) if tag.present? }
scope :list_for, -> (page, tag) do
recent_paginated(page).with_tag(tag)
end
ありがとう、これは間違いなく正しい方向に進んでいます。また、私は、私が使用したいタグのための私の別のページとリンクのセットアップを既に持っています。だから私はすでにあなたがそれらをクリックすると、 "映画"、 "テレビ"と "音楽"、私はちょうど空白のページです。新しいルートテンプレートと新しいビューテンプレートを作成するのではなく、その特定のページのタグを呼び出すほうが簡単でしょうか。たとえば、映画の下には@ posts.tagged_with( "movies")というコールタグがあります。 –
私のコードでいくつかのことを微調整して、これは完璧に機能しました。ありがとうございました。 –
既存のインデックスルートを使用し、コントローラメソッドでタグパラメータの有無を確認できます。 link_toメソッドは、タグをわずかに異なる方法で渡す必要があります。 link_to "movies"、posts_path、{tag: "Movies"}。リンクするタグがたくさんある場合は、より良い解決策になるかもしれません。 – margo