У меня есть модель (закладка) с двумя полями, назовите их A и B. При создании новой модели мне нужно выполнить довольно сложную проверку на B и, если true
обновить Закладка в базе данных (установка A на тот, который передается) и прервать создание, если false
просто сохраните его и создайте новую закладку.Rails: создать или обновить с сохранением модели
Поэтому я установил фильтр before_create. Проблема с вызванной функцией заключается в том, что если я выполняю update_attributes на извлеченном объекте из него и затем возвращаю false (чтобы прервать сохранение), обновление не выполняется (по какой-то причине я не знаю).
update_attributes возвращает истину, и нет никаких ошибок, но в журнале я вижу только
SQL (0.2ms)
Если я не вернусь ложно, запись корректно обновляется, но и вставляет новую запись (и Я не хочу этого). Любая помощь?
Возвращение ложного в AR обратного вызова будет, дизайн, прервать всю сделку. Это то, что здесь происходит? – jmcnevin
да, думаю. любой способ работать над этим? – pistacchio
будет ли наблюдатель более подходящим для этой ситуации? –