Я не совсем уверен, что вы имеете в виду, но если вы хотите что-то изменить в обратном вызове, что потребовало бы сохранения, сделать это в обратном вызове before_save
и не сохранять явно, так как вы знаете элементв любом случае будет сохранено следующим образом.
В after_save
вам лучше ничего не менять и не сохранять, поскольку действительно это снова вызовет обратные вызовы и приведет к бесконечному циклу.
Хотя можно объявить обратные вызовы условно, и это также может решить вашу проблему:
before_save :do_something, :unless => some_condition
Можно найти и другие примеры здесь .
В любом случае, еслиэто все еще неясно или не совсем точно для вашего случая: это легче обсудить, если вы приведете более практический пример.