获得nil:在Rails中确定日期时的NilClass

时间:2013-01-19 23:19:20

标签: ruby-on-rails ruby date scoping

我有点笨拙 - 为nil获取'undefined方法'每个':NilClass'错误。

我在模型中创建了一个非常简单的范围

  def self.just_added
      where('created_at > ?', Time.now-7.days.ago).order("created_at desc").first(4)
  end

在我看来是一个循环

<% @just_added_jobs.each do |job| %>
    <%= link_to job.name, job %>         
<% end %>

不确定发生了什么 - 我是相当认真的,我已经创建了一个像之前一样工作的范围。

另外 - 我还计划用日期做一些更复杂的范围 - 我有几个日期字段作为模型的一部分(即,循环完成即将到期的工作,过期)。我在哪里可以阅读更多关于范围日期的信息?

1 个答案:

答案 0 :(得分:3)

  1. 您展示的classmethod的结果永远不会是nil,因此我们必须断定您未能在控制器中设置@just_added_jobs

  2. created_at > Time.now-7.days.ago毫无意义,你的意思可能是created_at > 7.days.ago

  3. 在作用域上调用first(n)是一个坏主意,因为结果不再是作用域而是数组。您需要limit(n)