2010-12-20 9 views
0

私は2つのテーブルを持っています: 'countries'と 'airports'。私は、少なくとも1つの空港を持つすべての国を「アクティブ」に設定したいと考えています。これは動作しません:私は理解したよう私は国コードのリストを必要とするときRails active record:レコードのリストを更新する

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

は、Airport.select(...)は、空港のオブジェクトのリストを返します。

この場合、正しい構文は何ですか?

+0

Iは、マップ機能を使用してそれを解決:Airport.select(」。 DISTINCT(country_code) ')。ここで(:active => 1).map {| airport | airport.country_code} – krn

答えて

2

使用Airport.select('DISTINCT(country_code)').where(:active => 1).toArrayまたはAirport.select( 'DISTINCT(COUNTRY_CODE)')(:活性=> 1).ALL - レール3のみ

関連する問題