2

红宝石 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"。当然,因此它必须是具有更改标题的对象数组。

我怎么做?

4

3 回答 3

5

你是这个意思吗?

@data.each { |d|  d.title = 'my_title___' + d.title }
于 2012-07-31T14:09:16.037 回答
5

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

def my_proc
     @data = SomeTable.all
     @data.map { |d| 
        d.title='my_title___' + pt.title
        d
     }
end
于 2012-07-31T14:09:24.493 回答
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
于 2012-07-31T14:07:50.103 回答