这里的Rails新手。我的关联模型Venue
和class Team < ApplicationRecord
has_many :home_venues, class_name: "Venue"
end
的定义如下:
class Venue < ApplicationRecord
belongs_to :team, optional: true, foreign_key: :team_id
end
和
:city
两个模型都有:region
和team.home_venues.create
属性。当我致电:city
时,我希望新创建的:region
的{{1}}和venue
值默认为:city
和:region
除非另有说明,否则创建team
的值。
实现此功能的最佳方法是什么?
答案 0 :(得分:0)
我会使用before_validation hook - 这样你就可以确保在正确的时间运行所有验证。在Venue
模型中:
before_validation :set_default_values
def set_default_values
self.city ||= self.team.try(:city)
self.region ||= self.team.try(:region)
end