【发布时间】:2018-07-11 15:36:12
【问题描述】:
我正在尝试通过一些修改将副本添加到数组中:
site.pages.dup.each do | page |
new_page = page.dup
data = new_page.data
data['permalink'] = File.join('/app', page.url)
data['layout'] = 'app'
site.pages << new_page
end
site.pages.each do | page |
puts page.data
end
当我输出 page.data 时,永久链接不同,但 data['layout'] 对于数组中的所有项目都是相同的。我还尝试了 data = new_page.data.dup 并在每个实例中写出 new_page.data。
【问题讨论】:
-
dup很浅,就像文档说的那样。data是本地的;您需要将数据复制到 新对象中。 -
我该怎么做,试过
new_page.data = page.data.clone和new_page.data = page.data.dup -
还有,它怎么会影响.layout,而不影响.permalink?
标签: ruby-on-rails ruby ruby-on-rails-3