2013-05-22 2 views
0

У меня очень простое веб-приложение RoR, которое отслеживает калории. У меня есть настройка так, чтобы пользователь вводил свои калории и дату и сохранял ее в базе данных. Затем я показываю записанные данные пользователю в таблице.Почему моя модель рельсов возвращает нуль для несуществующей записи?

Однако, я продолжал получать эту ошибку: undefined method 'strftime' for nil:NilClass. Что странно, так это то, что он дает эту ошибку для (из того, что я вижу) несуществующей записи.

Как временное решение, я сделал заявление if, чтобы отобразить '?' если данные равны нулю. Я не могу понять, почему модель возвращает ноль. Я попытался сбросить базу данных, чтобы она была пустой, и я все равно получаю нуль.

Вот ссылка на хранилище моего приложения: https://github.com/barhamd/simple_calorie_tracker

модель, которая отслеживает калорию и дата называется «трекер», а вид, который отображает эти данные находятся в /app/views/static_pages/home.html.haml

Спасибо за любого Помогите.

+0

Просто используйте Rails Debugger, это поможет вам найти проблему. http://guides.rubyonrails.org/debugging_rails_applications.html –

ответ

2

в вашем StaticPagesController, линии 4, вы должны иметь:

@tracker = Tracker.new 

, так как это новая модель вы создаете форму для. При создании вы сохраняете трекер на current_user в любом случае.

В противном случае вы также выполняете итерацию по этой новой модели в current_user.trackers.each do, которая печатает все значения nil.

+0

Вы великолепный человек. Спасибо. – Devin

Смежные вопросы