无法访问模型中的任何时间(created_at,updated_at)变量

时间:2015-03-11 19:46:40

标签: ruby-on-rails datetime model

我的所有模型都有字段created_atupdated_at(默认情况下),它们未经过任何修改或更改。如果我要进入rails控制台并输入类似的内容:

user = User.first
user.created_at > 5.years.ago

它应该返回true。但是,如果我尝试在控制器中执行完全相同的操作,则会收到错误消息,指出无法在nil对象上调用>。为了进一步说明这一点,在任何视图中,如果我使用先前定义的变量@user并输入:

<%= @user.name %>

它打印名称没有问题。但是,如果我输入:

<%= @user.created_at %>

我什么都没得到(意思是零)。这是每个模型和每个控制器视图的情况 - 我已经彻底测试了它并且无法使其工作,我已经广泛搜索 - 任何帮助将不胜感激。谢谢!

编辑:控制器代码:

def active
  @user = current_user
  @items = @user.items.where(active: true).order('created_at DESC')
  @alerts = false
  if @user.items.where.not(deal_price: nil).where(active: true) != []
    @alerts = true
  end
  cookies[:item_temp_url] = ""

  if @user.created_at > 5.seconds.ago
    @display_welcome = true
  end
end

错误:

undefined method `>' for nil:NilClass

1 个答案:

答案 0 :(得分:0)

证明数据库已损坏的内容(值没有转移到Rails前端。我重新启动所有Ruby进程并删除并重新创建数据库,错误消失了。