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
)
它看起來並不好,雖然。
爲什麼不能像創建方法一樣使用它?