我有两个模型,id | mat_code | block | quantity
1 | abc | A | 250
2 | abc | B | 200
3 | def | A | 400
4 | def | C | 450
和Desk
。办公桌属于类型。类型有2个Type
:大小。
服务台有两列type_size
和width
。
我想根据类型添加默认尺寸。
我在length
模型中尝试过此操作:
Desk
但这不起作用,我尝试将before_validation :add_dimensions, on: :create
private
def add_dimensions
if self.type.type_size == 'small'
self.width = 40
self.length = 50
else
self.width = 60
self.length = 80
end
end
更改为before_validation
或类似的内容,但我得到了after_create
设置默认尺寸的最佳方法是什么?
答案 0 :(得分:1)
您可以使用before_create:
before_create :add_dimensions
private
def add_dimensions
if self.type.type_size == 'small'
self.width = 40
self.length = 50
else
self.width = 60
self.length = 80
end
end
或者您可以在new_record上使用before_save,例如:
before_save :add_dimensions, :if => :new_record?
private
def add_dimensions
if self.type.type_size == 'small'
self.width = 40
self.length = 50
else
self.width = 60
self.length = 80
end
end