[英]In a Rails controller creating a new index in a 'map.do' loop fails, yet it's fine in Ruby
我從數據庫中使用select id, parent_id....
獲得了一堆記錄select id, parent_id....
並使用map.do
在每行上創建一個新索引來map.do
它們。
records = results.map do |row|
row['childs'] = {}
comments[row['id']] = row
end
從命令行調用時,此方法工作正常,但是當置於Rails上下文中時,出現以下錯誤:
>ActiveModel::MissingAttributeError in CommentsController#index
can't write unknown attribute `childs'
知道這在Ruby而不是Rails的命令行中能做什么嗎? 我對Rails的工作方式缺少什么?
row
不是哈希,而是ActiveModel
對象實例,因此您不能像哈希鍵一樣向其添加/分配新屬性。 在模型中,您可以使用attr_accessor
來初始化childs
屬性的setter(寫入)和getter(讀取)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.