簡體   English   中英

在Rails控制器中,在“ map.do”循環中創建新索引失敗,但是在Ruby中就可以了

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM