0

我有点傻眼 - 为 nil: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 %>

不知道发生了什么 - 我很确定我已经创建了一个像以前一样工作的范围。

另外 - 我还计划对日期进行一些更复杂的范围界定 - 我有几个日期字段作为模型的一部分(即循环浏览即将到期的作业,过期)。我在哪里可以阅读更多关于范围界定日期的信息?

4

1 回答 1

3
  1. 您显示的类方法的结果永远不会nil如此,因此我们必须得出结论,您没有@just_added_jobs在控制器中进行设置。

  2. created_at > Time.now-7.days.ago没有意义,你可能是说created_at > 7.days.ago

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

于 2013-01-19T23:59:11.603 回答