Dalam model Pengguna saya, saya dapat memiliki:
has_many :tasks
dan dalam model Tugas saya:
belongs_to :user
Kemudian, seandainya kunci asing 'user_id' disimpan di tabel tugas, saya bisa menggunakan:
@user.tasks
Pertanyaan saya adalah, bagaimana cara menyatakan hubungan has_many sehingga saya bisa merujuk ke Tugas Pengguna sebagai:
@user.jobs
... atau ...
@user.foobars
Terima kasih banyak.
ruby-on-rails
has-many
doctororange
sumber
sumber
Jawaban:
Coba ini:
Catatan, yang
:as
digunakan untuk asosiasi polimorfik .sumber
belongs_to
cukup memadai?Anda juga dapat menggunakan
alias_attribute
jika Anda masih ingin merujuknya sebagai tugas juga:sumber
Untuk melengkapi jawaban @SamSaffron:
Anda dapat menggunakan
class_name
salah satuforeign_key
atauinverse_of
. Saya pribadi lebih suka deklaratif yang lebih abstrak, tapi itu benar-benar hanya masalah selera:dan Anda perlu memastikan Anda memiliki
belongs_to
atribut pada model anak:sumber
Jika Anda menggunakan has_many melalui, dan ingin alias:
sumber
Anda dapat melakukan ini dengan dua cara berbeda. Salah satunya adalah dengan menggunakan "sebagai"
atau
Jelas yang pertama akan menjadi cara terbaik untuk menanganinya.
sumber