2017-02-28 21 views
0

Rails初心者はここにあります。私は次のように定義されたモデルTeamVenueが関連付けられている:関連付けられたモデル属性継承

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の新しく作成されたvenueの値は、デフォルトの:city:regionの値をteamに作成したいと思います。

この機能を実現するにはどうすればよいですか?

答えて

0

私はbefore_validationフックを使用します。これにより、すべての検証が正しいタイミングで実行されるようになります。 Venueモデル:

before_validation :set_default_values 

def set_default_values 
    self.city ||= self.team.try(:city) 
    self.region ||= self.team.try(:region) 
end 
関連する問題