在 ruby 中得到了一些代码,看起来像(Product 类中的方法):
def merge_prices_with_suppliers(suppliers)
data = []
phs = self.prices
suppliers_in = phs.map { |ph| ph.supplier_id}.uniq()
for serv in suppliers_in
logger.debug serv
data_for_supplier = phs.select{|ph| ph.supplier_id== serv}
debugger
s = (suppliers.select{|s| s.id.to_s == serv }[0])
if s.nil? || s.name.nil?
name = "none"
else
name = s.name
end
logger.debug "#{name} #{serv}"
data.push([name, data_for_supplier.map{|ph| {date: ph.date, amount: ph.amount} }])
end
data
end
我正在重新加载并重新运行它:
reload! and g = Product.by_name( 'thenamehere') and g.merge_prices_with_suppliers(suppliers)
好的,所以我进行了一些更改,因为 select 语句无法正常工作。然后我reload!
。当我重新加载并重做对象的“获取”时,新代码不存在。by_name
代码非常简单:(使用Game.where(name: name).first
mongoid)。我自己也试过reload!
一条线,没有运气。在重新加载之前,我尝试将对象设置为 nil,但没有成功。我试过制作一个完全不同的物体,没有运气。
但是如果我关闭 irb 并重新启动它,新代码就在那里。
为什么reload!
实际上没有重新加载我的代码?我在这里阅读了有关此问题的其他问题,但它们没有帮助。