質問

ACTSをタグの起動宝石として使用しており、大文字のあるタグをすべて小文字に強制しています。たとえば、「コンピュータサイエンス」を追加しようとすると、代わりに 'Computer Science'を追加し、サーバーのログがこれを表示します。

  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"]
.

これを望んでいません。ACTSASASARGGABLE GITHUBページはこれを追加するように言う:

ActsAsTaggableOn.strict_case_match = true
.

Application.rbファイルにその行を追加しましたが、まだ機能していません。ACTSASASASARGABLEの大文字と小文字を区別しますか?

役に立ちましたか?

解決

これをテストし、それは私のために働いています。Application.RB:

で書かれていることを確認してください。
ActsAsTaggableOn.force_lowercase = true
.

それが解決しない場合は、より多くの情報を追加してください。

それを言ったことは、2つの理由でタグを小文字に保つことを検討したいかもしれません:

1)クリーンURL - あなたはあなたのURLの大文字を避けたいです。それらは大文字と小文字が区別されませんが、それは単にきれいです。自分以外の人がタグを付けることを許可されている場合は、「Hell0Peeps」などの文字列を思いつくことができ、クリーンなURLの右に望んでいませんか。

2)あなたのデザインを制御しています。これは私が行った最初のポイントに関連しています - 誰かが上限/小文字を使って派手なタグをランダムに使用している場合、タグをリストしているところにこのように書かれます。

代わりに小文字を保存し、.capitalize

を使用します。

しかし、あなたが要件が異なっていて、大文字と小文字の自由な選択が必要な場合は、追加の考えを無視してください:)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top