Ruby - 初始化模型

时间:2010-08-06 18:20:01

标签: ruby-on-rails initialization

我不知道在保存模型之前如何初始化模型中的信息。

例如。我有一个名为Car的模型,它有属性wheel_size,颜色等... 我想根据每辆新车的其他因素初始化这些属性。

这就是我现在正在做的事情。

Class Car < ActiveRecord::Base

    before_save :initial_information

    def initial_information
        self.color = value1
        self.wheel_size = value2
    end

end

3 个答案:

答案 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对象中的构造函数):]