2016-02-23 39 views
0

快速的問題。在多個標籤上使用Acts-As-Taggable

我試圖使用Acts-As-Taggable gem來同時搜索多個標籤。訣竅是,我想搜索任何包含至少一個標籤的帖子。我已經部分理解了它。

如果我的歌控制器我把

if params[:tag] 
     @songs = Song.tagged_with(["Hip-Hop-3, Hip-Hop-5"], :any => true) 
elsif... 

它會找到包含標籤中的一個或多個的所有帖子。

的問題是,當我想這些參數搬進ERB的link_to

這裏是我的控制器:

if params[:tag] 
     @songs = Song.tagged_with(params[:tag], :any => true).order("created_at DESC").paginate(:page => params[:page], :per_page => 36) 
elsif 

這裏是我的link_to

<%= link_to "House", tag_path(["Hip-Hop-5","Hip-Hop-3"]) %> 

在這種情況下,網址是一樣的,http://localhost:3000/tags/Hip-Hop-5/Hip-Hop-3,但它沒有顯示任何像上一個方法那樣的帖子。

我在做錯誤的參數?

OR

有沒有一種方法可以讓我有包含特定字符標籤tagged_with方法搜索。那麼找到包含單詞「嘻哈」的標籤呢?謝謝!

謝謝

馬特

+0

該網址令我的眼睛受傷。不會像http:// localhost:3000/songs&style = house那樣更好嗎?然後,您可以將params [「style」=>「house」]映射到控制器(或模型,取決於設計)以獲得'Hip-Hop-5'和'Hip-Hop-3'。 – jvillian

+0

嘿jvillian,我完全同意這些標籤真的很混亂。我只是試圖讓這個工作,然後我會解決這個問題。好的建議,但! –

回答

0

您需要修改網址如下:

<%= link_to "House", tag_path(tag: ["Hip-Hop-5","Hip-Hop-3"]) %>

我相信,控制器將無法找到PARAMS [:標籤],因爲它沒有作爲散列傳遞給方法tag_path,使用tag: params[:tag]應確保正確分配params [:tag]給您傳遞的參數。

+0

嘿,Thresh,剛剛嘗試過。仍然沒有運氣。任何其他建議 –

+0

您是否可以編輯問題以包含完整的控制器代碼,還包括歌曲的型號。也許有一些我錯過了。另外我需要知道你得到的確切輸出是什麼。你是否有錯誤,或者頁面正常顯示沒有任何錯誤,當你檢查if條件中的@songs時,它的價值是什麼? – Thresh