У меня есть модель opening_times
, которая записывает время работы магазинов.
create_table "opening_times", force: :cascade do |t|
t.string "day"
t.time "morning"
t.time "evening"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.bigint "shop_id"
t.index ["shop_id"]
end
Эта модель обновляется только через вложенную форму в действии edit
контроллера shops
.У меня нет opening_times
контроллера.
Тогда в основном то, что я могу сделать, довольно сильно ограничено: действие update
.
Хотя у меня есть проблема: когда раньше было время открытия для определенного дня, скажем, вторник, и пользователь хочет, чтобы этот день не работал, пользователь делает оба поля morning
и evening
blanks.
Я мог бы сохранить пустые значения в базе данных, но было бы лучше фактически удалить запись для вторника.
тогда в файле модели я установил это:
before_save :delete_records_with_missing_hours
private
def delete_records_with_missing_hours
if self.morning.blank? or self.evening.blank?
self.destroy
end
end
Но это не работает.
Есть ли способ удалить запись, предназначенную для обновления на уровне модели?