Wie füge ich mithilfe von Arel SQL-Abfragen mit 'oder' und 'und' Klammern hinzu?

Ich verwende Ruby on Rails 3.2.2 und möchte die folgende SQL-Abfrage generieren:

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, <...>))) 

Durch die NutzungArel diesen Weg

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, <...>)
     )
  )
)

es erzeugt die folgenden (Hinweis: Klammern stimmen nicht mit der ersten SQL-Abfrage überein):

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, <...>))) 

Schon seitMeiner Ansicht nach die letztere SQL-Abfrage "funktioniert" nicht wie die erste,Wie könnte ich Arel benutzen? (oder vielleicht noch etwas anderes)Also, um die SQL-Abfrage als erste zu generieren?

Update (nach Kommentaren)

Da die obigen SQL-Abfragen "funktionieren", möchte ich dennoch die genaue SQL-Abfrage als erste in der Frage generieren (der Hauptgrund dafür ist, dass die erste SQL-Abfrage lesbarer ist als die zweite, da die erste Abfrage man verwendet weniger und "explizite" Klammern), wie könnte ich das mit Arel machen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage