快速提问。
我正在尝试使用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方法搜索包含某些字符的标签。那么找到包含单词“Hip-Hop”的标签呢?谢谢!
谢谢,
马特
答案 0 :(得分:0)
您需要按如下方式修改网址:
<%= link_to "House", tag_path(tag: ["Hip-Hop-5","Hip-Hop-3"]) %>
我相信控制器将无法根据您的链接找到params [:tag],因为它不会作为哈希传递给方法tag_path,使用tag: params[:tag]
应该确保正确分配参数[ :tag]到你传递的参数。