假设我有一个模型(to_js是一个自定义方法,来自here,将ruby Time转换为JS Date格式):
class Model < ActiveRecord::Base
attr_accessor :js_start_time
def after_initialize
js_start_time = self.start_time.to_js
end
end
当我在控制台中找到该模型的实例时,js_start_time为nil。为什么是这样?谢谢。
编辑:愚蠢的错误。需要做的事:class Model < ActiveRecord::Base
attr_accessor :js_start_time
after_find :set_js_time
def set_js_time
self.js_start_time = self.start_time.to_js
end
end
答案 0 :(得分:1)
听起来你必须对你的数据进行一些探索。
如果您还没有,请添加gem:ruby-debug
然后在debugger
来电之前抛出nil
行:
def after_initialize
debugger # <---- add this here.
js_start_time = self.start_time.to_js
end
然后运行您的服务器rails s --debugger
当你到达调试器时,尝试找出哪些即时变量和属性可用。
另外,请告诉我们堆栈跟踪错误的含义!