title: best practice for gems like workflow or AASM
body: <p>i would like to know how you guys use the workflow or the AASM gem in the controller if you want to update all attributes, but also need the workflow/AASM callbacks to fire properly.</p>
  
  <p>currently, i use it like this:</p>
  
  <pre><code>  class ModelController &lt; ApplicationController
      def update
        @model = model.find(params[:id])
  
        if params[:application]['state'].present?
          if params[:application]['state'] == "published"
            @model.publish!
          end
        end
        if @model.update_attributes(params[:application]); ... end
      end
    end
  </code></pre>
  
  <p>that does not feel right, what would be a better solution ?</p>