/ 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错误是真实的。 ;-)
没有找到相关结果
已邀请:
0 个回复