在rails 4(当前是4.0.10)的应用程序模型中,我遇到了一个问题,在视图中没有为NilClass错误定义一个方法,所以我决定尝试通过设置一个空的字符串nil来解决模型的after_initialize因此:
def after_initialize
...
self.biography ||= ""
end
因为,根据这里的文档http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html,“为查找器找到并实例化的每个对象触发after_initialize回调” 然而,似乎after_initialize永远不会被调用,因此错误仍然存在,如在rails控制台中测试的那样:
2.1.1 :001 > Presenter.find(2) => #<Presenter id: 2, mediahub_id: 2, name: "Craig", asset_id: nil, biography: nil, status: "active", created_at: "2015-08-12 23:00:34", updated_at: "2015-08-12 23:00:34">
正如你所看到的,传记在发现之后仍然是零。我究竟做错了什么? :)