Ruby on Rails 3 Wie erstelle ich eine 'OR'-Bedingung

Ich benötige eine SQL-Anweisung, die prüft, ob eine Bedingung erfüllt ist:

SELECT * FROM my_table WHERE my_table.x=1 OR my_table.y=1

Ich möchte dies auf die 'Rails 3'-Weise tun. Ich suchte nach etwas wie:

Account.where(:id => 1).or.where(:id => 2)

Ich weiß, dass ich immer auf SQL oder eine Bedingungszeichenfolge zurückgreifen kann. Nach meiner Erfahrung führt dies jedoch häufig zu Chaos beim Kombinieren von Bereichen. Wie geht das am besten?

Eine weitere verwandte Frage ist, wie eine Beziehung beschrieben werden kann, die von einer OR-Bedingung abhängt. Der einzige Weg, den ich gefunden habe:

has_many :my_thing, :class_name => "MyTable",  :finder_sql => 'SELECT my_tables.* ' + 'FROM my_tables ' +
'WHERE my_tables.payer_id = #{id} OR my_tables.payee_id = #{id}'

Diese werden jedoch bei der Verwendung in Kombinationen wieder unterbrochen. Gibt es eine bessere Möglichkeit, dies anzugeben?

Antworten auf die Frage(18)

Ihre Antwort auf die Frage