请问我在 lib 里查询数据库却什么都没查到是什么问题,我在同步一个 sql server 的数据库,本地是 mongo,下面的代码在查到本地已插过的数据进行更新操作,可是查出来的@data我不知到是什么东西,打印@data.class什么也没有打出来,插入是没有问题的,能跳到 update 分支,不过 undefined method `update' for nil:NilClass data 好像是 nil
def sync(table)
# "Materiale::#{table}".constantize.destroy_all
result = @client.execute("select #{@TABLES[table]['attributes']} from #{table.upcase}");
p_key = {}
result.each do |row|
@TABLES[table]['key'].each do |key|
p_key[key] = row[key]
end
@data = "Materiale::#{table}".constantize.where(p_key).first
if @data.blank?
insert(table, row)
else
update(@data, row)
end
end
end
def insert(table, row)
@data = "Materiale::#{table}".constantize.new(row)
@TABLES[table]['depend'].each do |depend|
if !@data["#{depend['key']}"].nil?
@depend = "Materiale::#{depend['table']}".constantize.where(depend['key'] => @data["#{depend['key']}"]).first
@data["#{depend['table'].downcase}_id"] = @depend.id
end
end
@data.save
end
def update(data, row)
puts "update data"
data.update(row)
end