2013-05-29 58 views
0

由於不得不通過cookie存儲進行一些奇妙的搜索,我有一個(模型)對象數組。如何將額外的鍵/值插入到Rails中的對象數組中?

@ads包含

[{:id => 9283 
:name => "Name Here" 
:price => 2000 
:phone => "999-999-9999" 
}] 

等多個對象。因此,一個二維數組(實際上類似於Hash,當然,但Rails在使用find()和find_all_by()方法處理數組時使用了這種方法。指定的廣告頁面,標誌一個對象作爲「當前」的廣告,因此它可以在視圖中表示爲這樣。

我已經與

@ads.select {|a| a[:id] == id} 

孤立,但如果我試圖

@ads.select {|a| a[:id] == id}.push :current => true 

我似乎裏面那個對象元素的新元素結束,就像這樣:然後

@ads包含

[{:id => 9283 
:name => "Name Here" 
:price => 2000 
:phone => "999-999-9999"}, 
{:current=>true}] 

我怎樣才能將其添加到選定對象的現有屬性,使之成爲訪問通過簡單的廣告[:當前]在視圖內?我應該做一個循環?

回答

3

select正在返回一個數組,但是您想在數組中使用特定的散列,因此請使用find。現在你正在處理一個哈希,你不需要push,但merge

@ads.find {|a| a[:id] == id}.merge! :current => true 
+1

輝煌!!!正是我需要的;非常感謝你的快速回答!你搖滾。 – rcd

相關問題