我使用的行为作为标签盖板宝石,它是强迫一些标签与大写字母都是小写。例如,当我尝试添加“计算机科学”时,它会添加“计算机科学”,服务器日志显示如下:
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"]我不想这样。actsastaggable页面说要添加以下内容:
ActsAsTaggableOn.strict_case_match = true我已经将这一行添加到application.rb文件中,但它仍然不起作用。我如何使行动敏感的案件?
发布于 2014-04-13 05:50:46
我已经测试过这个了,它对我有用。确保您的application.rb中没有写入以下内容:
ActsAsTaggableOn.force_lowercase = true如果这不能解决它,添加更多的信息。
话虽如此,您可能会考虑将标记保持小写,原因有二:
1.)清洁URL的-你想避免大写字母在你的网址。它们不区分大小写,但它很漂亮。如果允许您以外的人标记,他们可能会产生字符串,如"hEll0PeEpS“,并且您不希望在干净的URL中,对吗?
2.)控制你的设计。这与我提出的第一点有关--如果有人使用花哨的标签,随意使用大写/小写,那么无论你在哪里列出标签,它都会像这样写。
保存小写字母,然后使用.capitalize
但是,如果您的要求不同,并且要求自由选择大小写字母,那么请忽略我的其他想法:)
https://stackoverflow.com/questions/23015087
复制相似问题