我不知道在保存模型之前如何初始化模型中的信息。
例如。我有一个名为Car的模型,它有属性wheel_size,颜色等... 我想根据每辆新车的其他因素初始化这些属性。
这就是我现在正在做的事情。
Class Car < ActiveRecord::Base
before_save :initial_information
def initial_information
self.color = value1
self.wheel_size = value2
end
end
答案 0 :(得分:3)
after_initialize
将是最好的生命周期挂钩
答案 1 :(得分:1)
您希望尽早进行此初始化;理想情况下,在您依赖的信息设置完毕后立即进行。我建议为这些值所依赖的属性编写自定义setter方法并在那里初始化它们。
所以,比如:
def value1=(new_value1)
self["value1"] = new_value1
self.color = new_value1
end
或者,如果这些值可以直接从因变量计算出来,那么简单地使用普通方法会好得多。
def color
return self.value1
end
答案 2 :(得分:0)
做一个after_initialize :mymethod
你的方法mymethod
将在initialize之后被调用(这是ruby对象中的构造函数):]