为什么我的rails模型对于不存在的条目返回nil?

时间:2013-05-22 16:05:50

标签: ruby-on-rails web-applications

我有一个非常简单的追踪卡路里的RoR网络应用程序。我进行了设置,以便用户输入卡路里和日期,并将其保存到数据库中。然后,我在表格中将记录的数据显示给用户。

但是,我一直收到此错误:undefined method 'strftime' for nil:NilClass。但奇怪的是,这是因为(从我可以看到的)不存在的条目给出了这个错误。

作为临时解决方案,我在if语句中抛出一个'?'如果数据为零。我不明白为什么模型会返回nil。我已经尝试重置数据库,以便它是空的,我仍然没有。

这是指向我应用的存储库的链接:https://github.com/barhamd/simple_calorie_tracker

跟踪卡路里和日期的模型被命名为“tracker”,显示此数据的视图位于/app/views/static_pages/home.html.haml

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

StaticPagesController第4行,您应该:

@tracker = Tracker.new

因为这是你正在构建表单的新模型。在创建时,无论如何都要将跟踪器保存到current_user。

否则你也会在current_user.trackers.each do中迭代这个新模型,它打印所有的nil值。