4
class State < ActiveRecord::Base
has_many :cities
end
class City < ActiveRecord::Base
belongs_to :state
has_many :companies
end
class Company < ActiveRecord::Base
belongs_to :city
end
少なくとも1つの会社が登録されているすべての州とそれぞれの都市をリスト表示しようとしています。私の最初の試みは、次のクエリた:Rails 3.1 distinct属性の検索と欠落
states = State.joins(:cities => :companies).includes(:cities)
動作しますが、私は状態がそれで企業と複数の都市を持っている場合は、重複を取得してしまいます。クエリを次のように変更しました。
states = State.joins(:cities => :companies).includes(:cities).select("distinct(states.id)")
このクエリはほとんど動作します。私は都市(状態[0] .cities)へのアクセス権を持って、そして何の重複はありませんが、私はStateオブジェクトから属性にアクセスしようとすると、私は次のエラーを取得する:
ruby-1.9.2-p290 :056 >states[0].name
ActiveModel::MissingAttributeError: missing attribute: name
どのようにすることができますこれを解決する?事前
パーフェクト。それがそれを解決しました。どうもありがとう。 –
[SOLVED]タグは必要ありません。この答えをチェックするだけです; – Robin
Ops、悪いです。 F.A.Q.を読んでください。最初に質問をすると、ちょうどそれはこの^^の指示があることに気づいた。 –