Jak poprawnie dodać nawiasy do zapytań SQL za pomocą klauzul „lub” oraz „i” za pomocą Arel?

Używam Ruby na Rails 3.2.2 i chciałbym wygenerować następujące zapytanie SQL:

SELECT `articles`.* FROM `articles` WHERE (`articles`.`user_id` = 1 OR `articles`.`status` = 'published' OR (`articles`.`status` = 'temp' AND `articles`.`user_id` IN (10, 11, 12, <...>))) 

UżywającArel tą drogą

Article
 .where(
   arel_table[:user_id].eq(1)
   .or(arel_table[:status].eq("published"))
   .or(
     arel_table[:status].eq("temp")
     .and(
       arel_table[:user_id].in(10, 11, 12, <...>)
     )
  )
)

generuje następujące (Uwaga: nawiasy nie są takie same jak pierwsze zapytanie SQL):

SELECT `articles`.* FROM `articles` WHERE (((`articles`.`user_id` = 1 OR `articles`.`status` = 'published') OR `articles`.`status` = 'temp' AND `articles`.`user_id` IN (10, 11, 12, <...>))) 

OdMyślę drugie zapytanie SQL „nie działa” jako pierwsze,jak mogę korzystać z Arel (lub może coś innego)aby wygenerować zapytanie SQL jako pierwsze?

Aktualizacja (po komentarzach)

Powyższe zapytania SQL „działają” tak samo, ale nadal chciałbym wygenerować dokładne zapytanie SQL jako pierwsze w pytaniu (głównym powodem tego jest to, że pierwsze zapytanie SQL jest bardziej czytelne niż drugie, ponieważ w pierwszym jeden jest używany w mniejszym i „jawnym” nawiasie), jak mogę to zrobić za pomocą Arel?

questionAnswers(3)

yourAnswerToTheQuestion