1
在模型中我有以下几点:回调函数在轨工作不before_save
before_save :set_defaults
def set_defaults
self.num_results ||= 5
end
而且我在我的控制器创建对象是这样的:
Search.create!( :keyword => params[:keyword],
:ip_address => request.remote_ip,
:referring_page => request.referer)
即使我没有设置值为num_results
它仍然保存为0
(这是数据库模式中的默认值)。回调函数根本不会被调用。任何线索?
更新:
我原来回调不会被调用,问题是:
self.num_results ||= 5
我将如何设置红宝石的默认值?因为这似乎并不奏效。
但是,我没有在模型中设置0(只存在于数据库模式定义中)。如果没有明确设置,有没有办法提供一个值? – user1049097
如果您在迁移中定义的默认值超过了此默认值,则在初始化对象时。您不必再次将其设置在您的模型中。 – auralbee