这是我目前的代码:
class << self
NAMES.each do |item_name|
item = nil
define_method "#{item_name}" do
item = find_by_name(item_name)
end
define_method "#{item_name}_id" do
item.id
end
end
end
我尝试调用Item.balloon_id时遇到错误,例如,因为它说不能在对象上调用nil。什么是正确的代码?
答案 0 :(得分:2)
很难说,因为你没有说我们是什么课“在”。我猜我们在Item
,但我有点不清楚为什么你有item = nil
item = nil
我认为是对你的实例变量@item使用相同名称的方法进行模糊处理。
另一种方法是调用上面定义的方法。
E.G
define_method "#{item_name}_id" do
self.send(item_name).id
end