我有点笨拙 - 为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 %>
不确定发生了什么 - 我是相当认真的,我已经创建了一个像之前一样工作的范围。
另外 - 我还计划用日期做一些更复杂的范围 - 我有几个日期字段作为模型的一部分(即,循环完成即将到期的工作,过期)。我在哪里可以阅读更多关于范围日期的信息?
答案 0 :(得分:3)
您展示的classmethod的结果永远不会是nil
,因此我们必须断定您未能在控制器中设置@just_added_jobs
。
created_at > Time.now-7.days.ago
毫无意义,你的意思可能是created_at > 7.days.ago
在作用域上调用first(n)
是一个坏主意,因为结果不再是作用域而是数组。您需要limit(n)
。