Привет Я получаю ошибки вращения с приложением 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, однако теперь я думаю, что это может быть не так.
Любая помощь очень ценится!
г:
мерзавец: //gist.github.com/897342.git
- файл приложения ruby - добавлен файл create (я чувствую, что у него много проблем)
мерзавец: //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 вызывал немало проблем. Так что ошибка Синатры была правдивой. ; -)