 <p>Probably there is. Probably you can also use another callback on the application model which happens before, there are plenty of them. See <a href="http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html" rel="nofollow noreferrer">Active Record Callbacks</a></p> <p>However this is exactly the case, which other people call <code>rails callback hell</code></p> <p>The best practice here would be just creating a form object, which creates the data in the order you need and remove the callbacks</p> <pre><code>class ApplicationCommitmentForm include ActiveModel::Model attr_accessor ... def submit a = Application.create .. a.update_case_code a.commitments.create ... end end </code></pre> <p>See <a href="https://robots.thoughtbot.com/activemodel-form-objects" rel="nofollow noreferrer">ActiveModel Form Objects</a></p> <p>Btw you could also wrap the submit code into a transactions ensuring that either all records are created or in case of any errors nothing at all.</p>