2

您好,我在使用 Sinatra 应用程序时遇到旋转错误。我正在使用 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​​ app 文件 -- 添加了unless create(感觉这个有很多问题)

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 的错误是真实的。;-)

4

0 回答 0