我正在尝试做一个简单的导入后台作业,以使用 resque 导入一些 csv 信息。
工作运行,但一旦我编辑一个对象,它似乎被毁了或什么的......
一旦此作业运行,它会找到具有第一个 lin 的用户......然后在 @user.name 它没有设置,然后它无法保存。我可以在我的控制台中运行这段代码,它工作得很好,只是在 resque 中被破坏了。是否存在不能使用对象或使用 resque 写入数据库的限制?到目前为止浪费了 6 个小时,尝试了无数的事情......请帮忙。
def self.perform(chunk)
chunk.each do |i|
@user = User.where(:email => i[:email].to_s).first_or_initialize
@user.name = i[:name].to_s
if @user.save
puts @user.email
entity = Entity.find_by_email_domain(@user.email)
eur = EntityUser.where(:entity_id => entity.id, :user_id => @user.id).first_or_initialize
if eur.save
puts "Start: BLARGITY End"
topic = Topic.where(:number => i[:course_number].to_s).first_or_initialize
eu = TopicUser.where(:topic_id => topic.id, :user_id => user.id, :role_i => 1).first_or_initialize
else
eu = TopicUser.where(:topic_id => topic.id, :user_id => user.id).first_or_initialize
end
eu.save
end
end
end
end
我只是尝试像这样进行查找,您现在可以看到错误..
NoMethodError: nil:NilClass 的未定义方法 `name='
@user = User.find_by_email(i[:email])
puts "sdfdsf"
@user.name = i[:name]
puts @user.name