红宝石在轨道上

快速提问。

我试图使用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"]) %>

在这种情况下,URL是相同的,http:// localhost:3000 / tags / Hip-Hop-5 / Hip-Hop-3,但它并不像前面的方法那样显示任何帖子。

我的参数有问题吗?

要么

有没有一种方法可以让tagged_with方法搜索包含某些字符的标签。 那么找到包含单词“嘻哈”的标签呢? 谢谢!

谢谢,

马特


您需要修改网址,如下所示:

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

我相信控制器将无法按照您的链接查找params [:tag],因为它不会作为散列传递给方法tag_path,使用tag: params[:tag]应该确保tag: params[:tag]正确赋值。标签]到您传递的参数。

链接地址: http://www.djcxy.com/p/36029.html

上一篇: ruby on rails

下一篇: Simple form custom input with acts