0
因此,我有acts_as_taggable正常工作。我可以在創建新帖子時添加標籤,並且在查看帖子時可以看到所有標籤。我想要做的是爲某些標籤創建一個導航鏈接。例如,我想要一個名爲「電影」的導航鏈接,當我點擊該鏈接時,我想要創建具有「電影」標籤的所有帖子。這是我的post_controller.rb使用acts_as_taggable鏈接到具有相同標記的所有帖子
def index
@posts = current_author.posts.most_recent
end
def show
end
def new
@post = current_author.posts.new
end
private
def set_post
@post = current_author.posts.friendly.find(params[:id])
end
def post_params
params.require(:post).permit(:title, :body, :description, :banner_image_url, :tag_list)
end
end
end
我post.rb與標籤
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(「電影」)。 –
在我的代碼上調整了一些東西,這完全解決了。謝謝。 –
您可以使用現有的索引路由並在控制器方法中檢查是否存在標籤參數。 link_to方法必須稍微不同地傳遞標籤,例如link_to「電影」,posts_path,{tag:「電影」}。如果你有很多不同的標籤鏈接到一個更好的解決方案。 – margo