0
我有以下型号:的ActiveRecord ::关系创建VS find_or_create_by
class MyModel < ActiveRecord::Base
validates :date, :my_type, presence: true
validates_uniqueness_of :my_type, scope: :date
enum my_type: {
"first_type": 1,
"second_type": 2
}
end
我想创建模型的新实例,并将其保存到数据库:
MyModel.create!(
date: 1.day.ago,
type: :first_type,
value: 1.50
)
上面的方法让我使用枚举来填充类型,但是我想使用find_or_create_by!
方法来确保在重复的情况下不会发生错误。
我想这样做(失败):
myModel = MyModel.find_or_create_by!(
date: 1.day.ago,
type: :first_type,
value: 1.50
)
我发现我能做到这样:
myModel = MyModel.find_or_create_by!(
date: 1.day.ago,
type: MyModel.my_types[:first_type],
value: 1.50
)
它看起来并不好,虽然。
为什么不能像创建方法一样使用它?