2012-07-31 58 views
2

Ruby 1.9在Ruby中更改數組中的每個元素

我試圖在Ruby中做一個平凡的操作。我想通過在屬性標題中添加一些數據作爲前綴來更改數組的每個元素。

def my_proc 
     @data = SomeTable.all 
     @data.each { |d| 'my_title___'<< pt.title } 
end 

我做錯了什麼?

UPDATE:我需要附加一些值作爲前綴pt.title作爲前綴。如果pt.title ==「some title」,那麼在附加它之後,必須是「my_title___some title」。當然,因此它必須是標題更改的對象數組。

我該怎麼做?

+0

因此,您希望數組的前綴標題或具有更改標題的對象數組? – rogal111 2012-07-31 14:06:41

+0

有更改標題的對象數組 – Alexandre 2012-07-31 14:07:53

回答

5

你的意思呢?

@data.each { |d| d.title = 'my_title___' + d.title } 
2

使用地圖功能:http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-map

def my_proc 
     @data = SomeTable.all 
     @data.map! { |d| 'my_title___'<< pt.title } 
end 
+1

這不會像列出的那樣工作;它將對象數組更改爲一個字符串數組(前綴標題) – lyricsboy 2012-07-31 14:10:37

+0

必須誤讀該問題。因此@xdazz的答案就是要走的路。 – 2012-07-31 14:15:27

5

要返回具有改變標題對象數組使用map方法在塊返回對象。

def my_proc 
    @data = SomeTable.all 
    @data.map { |d| 
     d.title='my_title___' + pt.title 
     d 
    } 
end 
相關問題