In meinem Benutzermodell könnte ich haben:
has_many :tasks
und in meinem Aufgabenmodell:
belongs_to :user
Angenommen, der Fremdschlüssel 'user_id' wurde in der Aufgabentabelle gespeichert, könnte ich Folgendes verwenden:
@user.tasks
Meine Frage ist, wie deklariere ich die Beziehung has_many so, dass ich auf die Aufgaben eines Benutzers verweisen kann als:
@user.jobs
... oder ...
@user.foobars
Vielen Dank.
ruby-on-rails
has-many
Doktororange
quelle
quelle
Antworten:
Probieren Sie es aus:
Beachten Sie, dass dies
:as
für polymorphe Assoziationen verwendet wird .quelle
belongs_to
ausreichend?Sie können auch verwenden,
alias_attribute
wenn Sie sie weiterhin als Aufgaben bezeichnen möchten:quelle
Um die Antwort von @ SamSaffron zu vervollständigen:
Sie können
class_name
entwederforeign_key
oder verwendeninverse_of
. Ich persönlich bevorzuge die abstraktere Deklaration, aber es ist wirklich nur eine Frage des Geschmacks:und Sie müssen sicherstellen, dass Sie das
belongs_to
Attribut für das untergeordnete Modell haben:quelle
Wenn Sie has_many verwenden und einen Alias verwenden möchten:
quelle
Sie können dies auf zwei verschiedene Arten tun. Eine ist die Verwendung von "as"
oder
Offensichtlich wäre der erste der beste Weg, damit umzugehen.
quelle