2x self.order nie działa

W modelu user chcę, żeby przy params[:order] == ‘1’ wyświetlało mi użytkowników po karma DESC, w pozostałych przypadkach po id DESC. Pierwsza wersja wyglądałą tak jak poniżej, niestety cały czas było po id DESC, obojętnie czy był params[:order] == 1 czy nie.

  def self.search(params)
    scope = self.order('id DESC')

    scope = scope.order('karma DESC') if params[:order] == '1' 
    scope = scope.page(params[:page]).per_page(20)
  end

Poprawiłem to tak jak jest tutaj, bo zauważyłem, że chyba jak już raz ustawię self.order to kolejne self.order nie działa. Będę wdzięczny za informację, dlaczego tak się dzieje i czy dobrze myślę.

  def self.search(params)
    params[:order] == '1' ? scope = self.order('karma DESC') : scope = self.order('id DESC')
    scope = scope.page(params[:page]).per_page(20)
  end

http://apidock.com/rails/ActiveRecord/QueryMethods/reorder

Dziękuję.