这是我的模型(合作伙伴)的一部分
before_validation(on: :create) do
self.name = name.upcase
self.institution = institution.upcase
self.position = position.upcase
self.street = street.upcase
self.neighborhood = neighborhood.upcase
self.city = city.upcase
self.state = state.upcase
self.email = email.upcase
self.birth_city = birth_city.upcase
self.spouse = spouse.upcase
end
街道和邻居是地址模型的属性。通过这种方式,我在将其保存到db之前收到错误。我该如何解决?
答案 0 :(得分:1)
您可能更擅长的是将这些属性委派给Address
模型,并使用autosave
在保存Partner
模型时保留这些属性。
class Partner
has_one :address, autosave: true
delegate :street, :neighborhood, to: :address
# callback code here
end
如果您想要更新所有属性,可以使用assign_attributes
和transform_values
的组合:
before_validation(on: :create) do
assign_attributes(attributes.transform_values(&:upcase))
end