Rails 3.2 アプリには、カテゴリに属する Post モデルがあります。新しい投稿フォームには、カテゴリを割り当てるか、新しいカテゴリを作成するためのテキスト フィールドがあります。
Post モデルで次のメソッドを介して動作します
def category_name=(name)
if name.present?
post_cat = category.find_or_initialize_by_name(name)
if post_cat.new_record?
post_cat.save(:validate => false)
self.category = post_cat
else
self.category = post_cat
end
end
end
これは多かれ少なかれ機能しますが、大文字と小文字が区別されます。たとえば、データベースには「注目」、「注目」、および「注目」カテゴリのレコードが含まれるようになりました。
find_or_initialize
上記の関数を大文字と小文字を区別しないように動作させるにはどうすればよいですか。私は Postgres データベースを使用していますが、これは「find_or_initialize
大文字と小文字を区別しない」ほど簡単ではないのではないかと思います。
ベストプラクティス、考慮すべきこと、および有用な参考文献に関するアドバイスに感謝します。