【问题标题】:Creating Tags case insensitive rails创建标签不区分大小写的导轨
【发布时间】:2011-07-17 19:57:50
【问题描述】:

我有一个标签模型

has validates_uniqueness_of :name, :case_sensitive => false

然后我有一个 before_filter 为帖子创建这些标签

Tag.find_or_create_by_name(name)

当我创建一个帖子,然后分配标签“玩具”它成功创建它,然后我做一个新帖子并添加标签“玩具”并得到这个Validation failed: Name has already been taken。我应该如何使“玩具”和“玩具”仍然是同一个标签?

【问题讨论】:

    标签: ruby-on-rails ruby activerecord tagging


    【解决方案1】:

    将所有标签存储在小写中并在小写中查找标签

    Tag.find_or_or_create_by_name(name.downcase)
    

    无论如何都要找到它:

    Tag.where("LOWER(name) = ?", name.downcase)
    

    【讨论】:

    • +1,然后您可以@tag.name.capitalize 将其恢复为当前表单。
    • 谢谢我忘了.downcase
    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2019-11-11
    • 2018-07-25
    • 2023-03-05
    • 2015-01-10
    • 1970-01-01
    • 2012-12-01
    相关资源
    最近更新 更多