Rails活动记录:更新记录列表

时间:2010-12-20 13:16:30

标签: ruby-on-rails activerecord

我有两张桌子:'国家'和'机场'。我想将所有至少有一个机场的国家设置为“活跃”。这不起作用:

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

据我所知,当我需要国家代码列表时,Airport.select(...)会返回机场对象列表。

在这种情况下,正确的语法是什么?

1 个答案:

答案 0 :(得分:2)

使用Airport.select('DISTINCT(country_code)').where(:active => 1).toArray或Airport.select('DISTINCT(country_code)')。where(:active => 1).all - 仅限Rails 3