您好我正在使用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问题,但我认为现在情况可能并非如此。
非常感谢任何帮助!
要旨:
GIT中://gist.github.com/897342.git - ruby应用程序文件 - 添加除非创建(我觉得这有很多问题)
GIT中://gist.github.com/895532.git - ruby应用程序文件 - 在被黑客入侵之前尝试添加创建调用
GIT中://gist.github.com/895394.git - user.rb文件
GIT中://gist.github.com/895391.git - 错误回溯
===更新: 经过几个小时的代码争论,以及来自irc组#datamapper #sinatra和#ruby !!的大力帮助!感谢所有帮助特别是Dkubb! 我很高兴地报告说我已经清除了NoMethodErrors并且现在正处理其他一些问题,主要是知道我的代码究竟在做什么,更忠实的测试以及一般的整体重构。
我将继续为感兴趣的人更新此内容。
一般的解决方法是分离我的方法和类,以便我知道被调用的内容,原因以及方法。特别是@user造成了很多问题。所以Sinatra错误是真实的。 ; - )