Rails Active Record обратная связь - PullRequest
0 голосов
/ 30 августа 2011

Я пытался выяснить, когда именно каждый обратный вызов для активной записи вызывается в рельсах.

Моя конкретная проблема: никогда не вызывается before_save.Например, если вы создаете.

Более широкий подход заключается в том, когда и где каждый вызывается.Также скажем, что вы изменили существующий объект в обратном вызове, который вам нужно будет повторно сохранить, и можете ли вы принудительно сохранить в обратном вызове, будет ли этот вызов сохранять save_callbacks ... Вы видите, куда я иду.

Ответы [ 2 ]

1 голос
/ 31 августа 2011

Я не совсем уверен, что вы имеете в виду, но если вы хотите что-то изменить в обратном вызове, что потребовало бы сохранения, сделать это в обратном вызове before_save и не сохранять явно, так как вы знаете элементв любом случае будет сохранено следующим образом.

В after_save вам лучше ничего не менять и не сохранять, поскольку действительно это снова вызовет обратные вызовы и приведет к бесконечному циклу.

Хотя можно объявить обратные вызовы условно, и это также может решить вашу проблему:

before_save :do_something, :unless => some_condition 

Можно найти и другие примеры здесь .

В любом случае, еслиэто все еще неясно или не совсем точно для вашего случая: это легче обсудить, если вы приведете более практический пример.

0 голосов
/ 30 августа 2011

Ваш вопрос немного неясен, может быть, http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html может помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...