【问题标题】:Using Acts-As-Taggable on Multiple Tags在多个标签上使用 Acts-As-Taggable
【发布时间】:2016-02-23 14:33:03
【问题描述】:

快速提问。

我正在尝试使用 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 "House", tag_path(["Hip-Hop-5","Hip-Hop-3"]) %>

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

我的参数有问题吗?

有没有办法让 tagged_with 方法搜索包含某些字符的标签。那么找到包含“Hip-Hop”这个词的标签呢?谢谢!

谢谢,

马特

【问题讨论】:

  • 那个网址让我眼睛疼。像localhost:3000/songs&style=house 这样的东西不是更好吗?然后您可以在控制器(或模型,取决于设计)中映射 params["style"=>"house"] 以获取 'Hip-Hop-5' 和 'Hip-Hop-3'。
  • 嘿 jvillian,我完全同意标签真的很乱。我只是想让它先工作,然后我会解决它。好建议!

标签: ruby-on-rails acts-as-taggable-on


【解决方案1】:

你需要修改url如下:

&lt;%= link_to "House", tag_path(tag: ["Hip-Hop-5","Hip-Hop-3"]) %&gt;

我相信控制器将无法根据您的链接找到 params[:tag],因为它没有作为哈希传递给方法 tag_path,使用 tag: params[:tag] 应该确保正确分配 params[:tag ] 到你传递的参数。

【讨论】:

  • 嘿Thresh,刚刚试过这个。仍然没有运气。任何其他建议
  • 您能否编辑问题以包括您的完整控制器代码,还包括歌曲的型号。也许我缺少一些东西。我还需要知道你得到的确切输出是什么。您是否有错误,或者页面正常呈现而没有任何错误,当您在 if 条件中检查 @songs 时,它的值是什么?
猜你喜欢
  • 2011-04-08
  • 1970-01-01
  • 1970-01-01
  • 2011-06-03
  • 1970-01-01
  • 2013-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多