Итак, я попробовал это:
stock = Stock.find_or_create_by(ticker: ticker, jse_link: link, name: name, price: price)
Оказывается, что если ActiveRecord не может найти объект Stock
, который соответствует всем 4 атрибутам, он создает новый.Поэтому, если он находит объект, который соответствует 3 из 4 атрибутов, он создает дублирующийся атрибут.
Есть ли простой способ без необходимости использовать операторы if
для выполнения всего этого за один вызов?
то есть то, что я хочу сделать, это:
- Найти
Stock
объект, который соответствует ticker: ticker
. - Если этот объект
Stock
существует, то я хочу обновить price: price
. - Если этот объект
Stock
не существует, тогда я хочу создать новый объект с этими 4Атрибуты (ticker: ticker, jse_link: link, name: name, price: price
).
Можно ли выполнить вышеизложенное без использования условных операторов?