Rails回调before_save

时间:2014-11-19 19:39:44

标签: ruby-on-rails

我有一个表单,我从中获取一个值。现在我需要将此值复制到记录中的另一个值。我试图在保存之前使用它,但它似乎不起作用。

控制器代码:

@new_performance = PerformanceType.new(params[:id])
@new_performance.save

型号代码:

def before_save(record)
  record.new_p_type = Thread.current[:old_p_type]
end

当我这样做时,当我尝试保存时,它仍显示new_p_type为NULL。什么指针我做错了什么?

1 个答案:

答案 0 :(得分:2)

我建议使用before_save回调,这是一个例子:

before_save :copy_attr

def copy_attr
  self.copy_of_attribute = self.attribute_to_copy
end

您可以在以下网址了解详情:http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html