我在模型中有以下内容:
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
如何在ruby中设置默认值?因为这似乎不起作用。
答案 0 :(得分:1)
num_results仅设置为5。在您的情况下,默认设置为0,因此assignemt不执行任何操作。尝试将您的作业更改为:
self.num_results = 5