Car*_*rds 0 database activerecord model ruby-on-rails
我目前正在我的应用程序中创建种子文件,并希望确保使用find_or_create_by此帖子中的建议不会创建重复项.我正在使用find_or_create_by_name但得到此错误:
NoMethodError: undefined method `find_or_create_by_name' for #<Class:0x007fa9680cb688>
Run Code Online (Sandbox Code Playgroud)
这就是我在种子文件中使用的内容
Genre.find_or_create_by_name([
{name: "Alternative"},
{name: "Country"},
{name: "Electronic"}
])
Run Code Online (Sandbox Code Playgroud)
也值得一提.如果我有一个模型名称的唯一性验证器find_or_create_by仍然是必要的吗?
较新版本的Rails使用略有不同的语法:
Genre.find_or_create_by(name: 'Alternative')
Run Code Online (Sandbox Code Playgroud)
find_or_create_by不支持一次添加多个记录,因此您必须构造一个哈希数组并调用find_or_create_by多个时间:
hashes = [
{name: "Alternative"},
{name: "Country"},
{name: "Electronic"}
]
hashes.each do |hash|
Genre.find_or_create_by(hash)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1596 次 |
| 最近记录: |