Refactoring if statement based on a hash key
I suggest using find

ARTICLE_ACTIONS = { :draft =&gt; :to_draft,
                    :archived =&gt; :to_archive,
                    :default =&gt; :publish 
                  }

def update_state
  state = [:draft, :archived, :default]
             .find {|state| params[state].present?}
  @article.send ARTICLE_ACTIONS[state]
end