是否有可能测试是否已存在具有相同名称的元素?
我们假设我有一个数组,如下所示:
lregion=["de", "eu", "us", "it"]
我想用这个脚本将它们放在我的表中,然后,如果已经存在一个名为“eu”的元素,则不应再次创建它。
lregion.each do |x|
if #this "actually" should test, if there is already a country with this countrycode
Country.create(countrycode: x) #creates Country
end
end
这样做很重要,因为我在我的种子文件中使用这个脚本,并且不能在我的模型中使用uniqueness: true
,因为它会使seeds.rb崩溃。
有没有人对我的问题有所了解?
答案 0 :(得分:3)
您使用find_or_create
:
<% lregion.each do |x| %>
<% Country.find_or_create_by(countrycode: x.country_code) %>
<% end %>
这将搜索country_code
是否已经注册,如果没有注册,那么它将创建一个新的。{/ p>
答案 1 :(得分:0)
我之前的陈述
这样做很重要,因为我在我的种子文件中使用这个脚本,并且不能只使用唯一性:在我的模型中为true,因为它会使seeds.rb崩溃。
错了。我可以很容易地使用它!