Before_save过滤器无法正常工作

时间:2010-06-04 16:33:38

标签: ruby-on-rails

我不明白,没有比这更简单了:

class Visit < ActiveRecord::Base
  def before_save
    self.visited_on = "test" 
  end
end

然而,如果我这样做:

a = Visit.first
a.user_id = 5
a.save
a.visited_on
=> nil #WTF?

我知道过滤器必须返回true,但这一个是......可能是什么问题?

2 个答案:

答案 0 :(得分:0)

您确定您的记录实际上已保存吗?如果user_id已经是5,则a.save将不执行保存。此外,如果visited_on是日期和/或时间,则“test”可能会转换为nil。尝试使用当前时间或类似的东西。

答案 1 :(得分:0)

典型的愚蠢开发错误:我的代码中有两个类访问。我不知道它是怎么发生的,但删除空类修复了这个问题。抱歉浪费你的时间。