在 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
不区分大小写”那么容易。
对于最佳实践、要考虑的内容和有用的参考资料,我很感激。