1

我将这些行为用作标签山墙宝石,它迫使一些带有大写字母的标签全部小写。例如,当我尝试添加“计算机科学”时,它会添加“计算机科学”,而服务器日志显示如下:

  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 区分大小写?

4

1 回答 1

1

我已经对此进行了测试,它对我有用。确保您的 application.rb 中没有以下内容:

ActsAsTaggableOn.force_lowercase = true

如果那不能解决它,请添加更多信息。

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

1.) 干净的 URL - 您希望在 URL 中避免使用大写字母。它们不区分大小写,但很漂亮。如果允许除您以外的人进行标记,他们可能会想出诸如“hEll0PeEpS”之类的字符串,而您不希望在干净的 URL 中使用,对吗?

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

将它们保存为小写并使用 .capitalize

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

于 2014-04-13T05:50:46.360 回答