在Ruby中更改数组的每个元素

时间:2012-07-31 14:03:39

标签: ruby

Ruby 1.9

我正在尝试在Ruby中进行一些简单的操作。我想通过在其属性标题中添加一些数据作为前缀来更改数组的每个元素。

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

我做错了什么?

更新:我需要将一些值附加到pt.title作为前缀。如果pt.title ==“some title”,那么在追加它之后必须是“my_title___some title”。当然,因此它必须是具有更改标题的对象数组。

我该怎么做?

3 个答案:

答案 0 :(得分:5)

你是说这个吗?

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

答案 1 :(得分:5)

要返回标题已更改的对象数组,请使用map方法返回块中的对象。

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

答案 2 :(得分: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