2016-07-01 91 views
0

我不想每次都做一些變化:模型變化的某些屬性:如何檢查是否關聯從零

class User < ActiveRecord::Base 
    has_one :vendor 

    before_save :do_stuff_if_dirty 

    def do_stuff_if_dirty 
    fields = ['first_name', 'last_name', 'zipcode'] 

    if fields.any? { |field| (self.send("#{field}_changed?".to_sym)) } 
     # do stuff 
    end 
    end 
end 

我也想這樣做的東西時,從nil相關廠商的變化實例的Vendor。但因爲這是一個協會,我不能撥打user.vendor_changed?。我如何檢查協會是否成立?

回答

1

如果您在Vendor模型上添加before_save模型,該模型會調用User上的方法,它應該可以解決您的問題。

這要看供應商和用戶之間的關係,但你應該能夠檢查vendor_id_changed?user_id_changed?的機型之一,如果不是一個連接表