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”。当然,因此它必须是具有更改标题的对象数组。
我该怎么做?
答案 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