1
對不起,如果我使用了錯誤的術語,我仍然對rails有所瞭解。Rails:將值添加到Activerecord結果
問題:我在一個變量中檢索一個activerecord關係,我想在數組中的每個項中添加更多的鍵/值對,這樣他們都可以在視圖中輕鬆訪問。我該怎麼做呢?
控制器
def index
@rooms = Room.all.reverse
@sessions = Session.all
##returns => [#<Session id: 4, user_ip: "127.0.0.1", user_token: "", room_session: "", position: 2 ...>], #<Session id: 3, ...>]
@sessions.map do |k, v|
##Add the room associated with each session & other k/v pairs
end
##want to return => [#<Session id: 4, room: 'Marvin', spaghetti: 'monster' (etc...), user_ip: "127.0.0.1", user_token: "", room_session: "", position: 2 ...>], #<Session id: 3, ...>]
end
end
查看
- @sessions.each do |session|
%tr
%td= session.topic_id
%td= session.room
%td= session.spaghetti
編輯: 我希望能夠加入像 '麪條'=> '怪物' 和信息任意值從關係如Session.room
這樣做的最好方法是什麼?
謝謝!
其他屬性(除了房間)是否也是主動記錄關係還是他們是任意的?要添加房間,來自視圖的session.room呼叫應該已經分配了相關的房間(假設每個會話只有一個房間,否則你會想要做session.room.first或類似的事情)。爲了避免N +1,你的@session查找應該是Session.includes(:room).all。 – 2013-04-04 05:56:57
謝謝你的評論。我更新了我的問題。一個簡單的問題,當我做Session.includes(:room).all.to_a時,它不包括任何房間的列,但我可以做Session.first.room或session.includes(:room).first.room並獲得與該會話相關的房間。任何想法如何讓它成爲原來的返回數組的一部分?再次感謝。 – 2013-04-04 17:22:52