在 Ruby on Rails 模型类中:
class DeliveryItem < ActiveRecord::Base
attr_accessible :state
end
item=DeliveryItem.new
item.instance_variable_set "@name","apple"
NoMethodError:未定义的方法“名称”#
我该如何进行这项工作?
在 Ruby on Rails 模型类中:
class DeliveryItem < ActiveRecord::Base
attr_accessible :state
end
item=DeliveryItem.new
item.instance_variable_set "@name","apple"
NoMethodError:未定义的方法“名称”#
我该如何进行这项工作?
你可以试试这个:
item.instance_variable_set(:@attributes, {'name' => 'apple'})
该错误意味着您没有name
. DeliveryItem
这意味着没有 setter 方法,name
或者您没有name
列。所以要解决这个问题,你必须要么
name
列或name
为or创建一个 setter 方法attr_accessor
或attr_writer
为您完成工作将以下内容添加到您的模型中
class DeliveryItem < ActiveRecord::Base
attr_accessor :name
end
那么你应该能够使用你的代码
item = DeliveryItem.new
item.instance_variable_set "@name","apple"
# or just use item.name=
item.name = 'apple'