tag_list
是一個局部變量或方法,所以除非你在一個幫手這是你的第一個問題創造了它。第二個是名爲.Computer
的它不起作用,因爲tag_list是由gem創建的一個方法,用於列出所有對象標記,並且調用.
(也稱爲鏈接)試圖調用名爲Computer的方法,該方法不會不存在,這應該只是一個字符串,必須引用字符串。
所以,在你的佈局來看,你可以做
= link_to "Computer", tagged_posts_url(tag: "Computer")
然後在你的posts_controller.rb
添加一個名爲tagged
def tagged
if params[:tag].present?
@posts = Post.tagged_with(params[:tag])
else
@posts = Post.all
end
end
,以保持乾爽組視圖的動作,你甚至可以告訴它要顯示索引視圖,因爲你很可能已經有一個帖子列表,現在看起來完全一樣,但只包含帶有該標籤的帖子。例如
def tagged
if params[:tag].present?
@posts = Post.tagged_with(params[:tag])
else
@posts = Post.all
end
render "index"
end
然後在你的config/routes.rb
添加路由爲您的新控制器作用下,現有的post
路線
resources :posts do
collection do
get "/posts/tagged", as: :tagged
end
來源
2015-10-14 23:31:29
trh
謝謝您的回答!我已經自己解決了這個問題,但我會在下次給你的答案:) 但我會給你正確的答案:)) –