/ user / profile中的NoMethodError - nil的未定义方法`update':NilClass - 使用DataMapper的Sinatra App

嗨,我正在使用Sinatra App旋转错误。我使用的是DataMapper 1.1和Ruby 1.9.2-p136。在寻求帮助之前,我已经进行了搜索和黑客攻击。 我质疑/尝试的事情: 如果DataMapper #update不存在创建新记录,那么如何创建新用户? 所以我尝试了first_or_create,但没有解决问题。 这是我添加除非创建。 我已经调试了3天,我肯定对一个重构开放。事实上,我肯定会做一个重构,但我想先解决这个问题,以便从错误中吸取教训。具体来说,我不想使用“除非”代码,我觉得有更好的方法来编写/ after_login部分。 我一直在irc #datamapper #sinatra #ruby上露营 - 尽管已经有过慷慨的尝试,但还没有运气。 最后,原始代码与DataMapper 0.9一起工作,这使我认为这是一个DM问题,但我认为现在可能不是这样。 任何帮助是极大的赞赏! 要旨: 混帐://gist.github.com/897342.git - ruby​​应用程序文件 - 添加除非创建(我觉得这有很多问题) 混帐://gist.github.com/895532.git - ruby​​应用程序文件 - 在被黑客入侵之前尝试添加创建调用 混帐://gist.github.com/895394.git - user.rb文件 混帐://gist.github.com/895391.git - 错误回溯 ===更新: 经过几个小时的代码争论,以及来自irc组#datamapper #sinatra和#ruby !!的大力帮助!感谢所有帮助特别是Dkubb! 我很高兴地报告说我已经清除了NoMethodErrors并且现在正处理其他一些问题,主要是知道我的代码究竟在做什么,更忠实的测试以及一般的整体重构。 对于那些感兴趣的人,我会不断更新。 一般的解决方法是分离我的方法和类,以便我知道被调用的内容,原因以及方法。特别是@user造成了很多问题。所以Sinatra错误是真实的。 ;-)     
已邀请:

要回复问题请先登录注册