1
我遍歷Rails模型的實例數組。這裏是我的代碼:Rails 3 - NoMethodError:未定義的方法爲零:每個迭代中的NilClass
product_details.each do |product_detail|
product_detail.label = Backend::ProductGroup.where(product_group_number: product_detail.product_group).first.label
end
從「product_detail」屬性「標籤」是不是從我的Rails的ActiveRecord模型的屬性。我在我的類定義中添加了attr_accessor。我這樣做,因爲我想動態地添加這個屬性,只有當我需要這樣做。當我在rails控制檯中運行沒有「每個」迭代的代碼時,它工作得很好。但是,當我執行上面的代碼中,我得到了以下錯誤消息:用於無未定義的方法「標籤」:
NoMethodError NilClass
難道我顯然是錯誤的? 非常感謝提前。
哇,感謝您的快速和真正有用的答覆,雖然這對我來說有點尷尬,因爲你是完全正確的。 ;) – knoefel 2013-04-10 17:03:58
很抱歉再次打擾您,但爲什麼當我試圖將那些'product_details'作爲json發送給客戶端時,'label'屬性始終爲空?我試圖在渲染動作之前使用'to_json'方法序列化它,但這沒有幫助。它非常好奇,因爲在序列化之前的調試器中,屬性'label'被設置爲正確的值。之後它是空的。我無法將具有動態添加屬性的對象發送給客戶端嗎? – knoefel 2013-04-10 18:48:50
@knoefel:你可以,但這取決於你如何序列化它。默認行爲很可能只序列化表格支持的屬性 - 您需要修改它以達到您的目的。 – PinnyM 2013-04-10 18:51:51