Я обнаружил, что мой Projelement
обратный вызов after_update
срабатывал дважды, потому что я дважды сохранял Projelement
( предыдущий вопрос ):
def update
@milestone = Milestone.find(params[:id])
respond_to do |format|
if @milestone.update_attributes(params[:milestone])
# flag that current_user has this milestone
@milestone.read_by.clear
@milestone.read_by << current_user
@milestone.save
...
end
end
end
Итак, я пытаюсь сделать две вещи:
- Сохранить и проверить атрибуты
Projelement
- Отметьте
Projelement
, чтобы отметить, что текущий пользователь прочитал его
Разделение их создает два вызова обратного вызова after_update
, а это не то, чего я хочу.
Как лучше всего сделать так, чтобы after_update
срабатывал только один раз?