gpt4 book ai didi

ruby-on-rails - 不区分大小写的 find_or_create_by_whatever

转载 作者:数据小太阳 更新时间:2023-10-29 07:01:18 25 4
gpt4 key购买 nike

我希望能够执行 Artist.case_insensitive_find_or_create_by_name(artist_name)[1](并使其在 sqlite 和 postgreSQL 上都有效)

实现此目标的最佳方法是什么?现在我只是直接向 Artist 类添加一个方法(有点难看,特别是如果我想在另一个类中使用此功能,但无论如何):

  def self.case_insensitive_find_or_create_by_name(name)
first(:conditions => ['UPPER(name) = UPPER(?)', name]) || create(:name => name)
end

[1]:嗯,理想情况下是 Artist.find_or_create_by_name(artist_name, :case_sensitive => false),但这似乎更难实现

最佳答案

Rails 4 为您提供了一种方法来完成同样的事情:

Artist.where('lower(name) = ?', name.downcase).first_or_create(:name=>name)

关于ruby-on-rails - 不区分大小写的 find_or_create_by_whatever,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2435687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com