单表继承的默认值

时间:2013-11-25 22:47:22

标签: ruby-on-rails activerecord

我有一个用户表,我希望所有类型都有一个默认值,除了我希望每种类型的默认值都不同。我在基类上有一个before_create回调方法,其值设置为某些东西,我在为其他值继承它的类中重写该方法,但每次我播种时都会得到RecordNotSaved错误。我该怎么做呢?

谢谢!

2 个答案:

答案 0 :(得分:0)

检查你的回调是否为before_create;如果他们返回假,你会得到这个错误。 RecordNotSaved通常表示验证错误,如果您的回调返回false,即使是无意中,您也会收到该错误。

答案 1 :(得分:0)

您可以编写数据库触发器来设置默认值,我建议before_save而不是before_create。假设你正在建造汽车课程。

```

class Car
  before_save :default_type
  def default_type
    self.car_type ||= self.class.name
  end
end

class Honda < Car
end

class Tesla < Car
end

```