假设我有一个名为User的模型,它具有以下参数:favorite_color,favorite_animal和lucky_number。用户填写仅包含favorite_color和favorite_animal的表单。提交表单时,我想运行一个功能,将颜色和动物考虑在内,并提出一个lucky_number。如何在不填写表单的情况下向帖子值插入值 - 如何以及在何处实现此目的?
谢谢!
答案 0 :(得分:2)
您可以将其构建到控制器逻辑中,或者将代码放在模型中以下回调之一:
答案 1 :(得分:2)
由于在记录了favorite_animal和favorite_color之后才会知道lucky_number,因此无法将其与post请求一起发送。尝试使用
before_validation_on_create
看起来像这样:
before_validation_on_create :generate_lucky_number
def generate_lucky_number
self.lucky_number = self.favorite_animal.length + self.favorite_color.length
end
此功能只是将幸运数字设置为为喜爱的颜色和喜爱的动物存储的字符串的总长度,并在将用户保存到数据库之前设置它。