0

Activerecordの結果がある場合は、ハッシュの配列があります。has_oneの関連付けを熱心にロードしている場合、各レコードハッシュには、関連付けられたレコードのネストされたハッシュがあります。

私の質問は、これらのネストされたハッシュをレコードごとに1つのハッシュにマージできるクイックレールメソッドはありますか?

例えは、レコードとそこに関連付けられているものを単一のテーブル行に変換することです。

もう1つの例えは、nレベルのネストされたハッシュのハッシュを単一レベルのハッシュに変換することです。

4

2 に答える 2

1

アプローチ1:

それらをselect句に含めます

class User
  has_one :profile
end

class Profile
  belongs_to :user
  # street1, street2, city etc
end

profiles = Profile.joins(:user).select("users.*, profiles.*").all
profiles.first.login

アプローチ2:

委任を使用する

class Profile
  belongs_to :user
  # street1, street2, city etc
  delegate :name, :name=, :email, :email=, :to => :user  
end
于 2011-09-02T18:22:12.700 に答える
0

フラット化方法はどうですか? http://www.ruby-doc.org/core/classes/Array.html#M000280

于 2011-09-02T18:14:10.087 に答える