У меня есть метод в моей модели, и я вызываю его с помощью before_create
:
def first_position
if [...]
[...]
else
@last_known = Picture.where(user_id: user_id).order('position desc').first
self.position = nil
end
end
И у меня есть другой метод, который я вызываю с помощью after_commit
:
def default_position
pictures = Picture.where(user_id: user_id).where('created_at > ?', @last_known.created_at)
i = @last_known.position + 1
pictures.each do |pic|
pic.position = i
i += 1
end
end
Но в default_position
, @last_known
возвращает ноль .Вы знаете, почему?
РЕДАКТИРОВАТЬ:
Ну, я обнаружил, что у меня есть два коммита, но тот, который касается изображения, является вторым, поэтому @last_known
этоустанавливается при первом коммите, но исчезает при втором коммите.