在Ruby on Rails模型类中:
class DeliveryItem < ActiveRecord::Base
attr_accessible :state
end
item=DeliveryItem.new
item.instance_variable_set "@name","apple"
NoMethodError:未定义的方法&#39; name&#39;对于#
我如何使这项工作?
答案 0 :(得分:5)
你可以试试这个:
item.instance_variable_set(:@attributes, {'name' => 'apple'})
答案 1 :(得分:1)
错误表示您没有name
的{{1}}属性。这意味着DeliveryItem
没有setter方法,或者您没有name
列。所以要解决这个问题,你必须要么
name
列或name
或name
或attr_accessor
为您完成工作将以下内容添加到您的模型中
attr_writer
那么你应该能够使用你的代码
class DeliveryItem < ActiveRecord::Base
attr_accessor :name
end