2016-04-13 24 views
0

Hasta modelimde bir aittir_to ilişkim var, o zaman Patient nesnesinde belirtilen state_id öğesini okumak için bir attr_accessor oluşturmanız gerekiyor.Gezinme alanı değerini döndürmek için attr_accessor'u kullanın

Bunu nasıl yapabilirim?

Yalnızca attr_accessor: state_id kullanırsam, onu sınıf başlatıcısında ayarlamanız ve değerin statik olacağını varsaymak zorundayım. Sadece okumak ve City navigasyon özelliğinin mevcut değerine göre otomatik olarak güncellenmesi gerekiyor.

cevap

0

Sadece bir yönteme ihtiyacınız olan bir attr_accessor'a ihtiyacınız yok. Sonra

class Patient 

    def state_id 
    city.state_id 
    end 

end 

şehir ilişkilendirmesidir şehir olmanın nil olasılığını ele almak isteyebilirsiniz isteğe bağlıysa

...

class Patient 

    def state_id 
    city.try(:state_id) 
    end 

end 
0

size Patient nesne için API @patient.state_id gibi bir şey istiyorsanız, Patient nesnesini Patient nesnesinde belirtilen şehirden okumak için SteveTurczyn's answer veya delegation ya da sizin için çalışabilir:

class Patient 
    # you can remove `allow_nil` if the patient will *always* have a city 
    delegate :state_id, to: :city, allow_nil: true 
end 
İlgili konular