我在訪問Rails3中的連接屬性時遇到了問題。如何在Rails3中訪問連接的表格屬性?
有兩個模型/表格:地點和地址。一個地方可以有許多地址(即特定的街道地址,「地址的角落」等)。由於歷史原因,這些表格並沒有遵循標準的Rails約定:
class Place < ActiveRecord::Base
set_table_name :PLACE
set_primary_key :PLACE_ID
has_many :addresses, :class_name => "Address", :foreign_key => :PLACE_ID
end
和
class Address < ActiveRecord::Base
set_table_name :ADDRESS
set_primary_key :ADDRESS_ID
belongs_to :place, :foreign_key => "PLACE_ID"
end
我試圖讓所有的地址一個特別的地方:
pa = Place.joins(:addresses).where(:place_id => 68)
的SQL產生的外觀很好:
pa.to_sql
"SELECT [PLACE].* FROM [PLACE] INNER JOIN [ADDRESS] ON [ADDRESS].[PLACE_ID] = [PLACE].[PLACE_ID] WHERE ([PLACE].[place_id] = 68)"
返回的關係也有大小合適,作爲特定的地方有與之相關聯的6個地址:
irb(main):050:0> pa.size
=> 6
但是,返回的關係PA僅包含地方模型的屬性,它不包含任何地址模型的屬性。
Pre Rails3我曾經做過find_by_sql,可以在返回的Hash中輕鬆訪問兩個連接表的屬性,但是我根本無法讓Rails3向我顯示連接地址表中的 屬性。
我必須在這裏丟失一些非常基本的東西 - 任何人都在意向我指出嗎?
完美 - 感謝! – patschiboy 2010-10-21 12:23:14