使act-as-taggable gem区分大小写

时间:2014-04-11 14:13:46

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

我使用act作为标记gable gem,它强制使用大写字母的一些标记全部为小写。例如,当我尝试添加“计算机科学”时,它会增加“计算机科学”等。相反,服务器日志显示:

  ActsAsTaggableOn::Tag Load (0.6ms)  SELECT "tags".* FROM "tags" INNER JOIN "taggings" ON "tags"."id" = "taggings"."tag_id" WHERE "taggings"."taggable_id" = $1 AND "taggings"."taggable_type" = $2 AND (taggings.context = 'tags' AND taggings.tagger_id IS NULL)  [["taggable_id", 12], ["taggable_type", "Project"]]
   => ["computer science", "Computer Science"]

我不想要这个。 actastaggable github页面说要添加:

ActsAsTaggableOn.strict_case_match = true

我已将该行添加到application.rb文件中,但它仍无效。如何使actastaggable区分大小写?

1 个答案:

答案 0 :(得分:1)

我测试了这个,它对我有用。确保您的application.rb中没有写下以下内容:

ActsAsTaggableOn.force_lowercase = true

如果没有解决,请添加更多信息。

话虽如此,您可能需要考虑将标记保持小写有两个原因:

1。)干净的网址 - 您希望避免在网址中使用大写字母。它们不区分大小写,但它非常漂亮。如果允许除了你自己以外的其他人,他们可以提出诸如“hEll0PeEpS”之类的字符串,并且你不想要干净的URL,对吗?

2.)控制你的设计。这与我提出的第一点有关 - 如果有人使用大写/小写随机使用花式标签,无论你在哪里列出你的标签,都会这样写。

将它们保存为小写,然后使用.capitalize

但是,如果您的要求不同并且需要自由选择大写和小写字母,那么请忽略我的其他想法:)