2010-12-20 9 views
0

Ich habe zwei Tabellen: "Länder" und "Flughäfen". Ich möchte alle Länder, die mindestens einen Flughafen haben, als "aktiv" festlegen. Dies funktioniert nicht:Rails active record: Aktualisiere eine Liste von Datensätzen

def self.activate_by_airports 
    update_all('active = 1', ['country_code IN (?)', Airport.select('DISTINCT(country_code)').where(:active => 1)]) 
    end 

Wie ich verstehe, Airport.select (...) gibt eine Liste von Flughafen-Objekte, wenn ich eine Liste der Ländercodes benötigen.

Was ist die richtige Syntax in diesem Fall?

+0

ich es gelöst, indem eine Kartenfunktion: Airport.select (‘ DISTINCT (country_code) ') where (: active => 1) .map {| airport | airport.country_code} – krn

Antwort

2

Verwenden Airport.select('DISTINCT(country_code)').where(:active => 1).toArray oder Airport.select ('distinct (country_code)'), wobei. (: Aktiv => 1) zu tun - Rails 3 nur

Verwandte Themen