W moim modelu użytkownika mógłbym:
has_many :tasks
i w moim modelu zadań:
belongs_to :user
Następnie, zakładając, że klucz obcy „user_id” został zapisany w tabeli zadań, mógłbym użyć:
@user.tasks
Moje pytanie brzmi: w jaki sposób mogę zadeklarować relację has_many, aby móc odwoływać się do zadań użytkownika jako:
@user.jobs
... lub ...
@user.foobars
Dzięki kupie.
ruby-on-rails
has-many
doktorantange
źródło
źródło
Odpowiedzi:
Daj temu szansę:
Uwaga:
:as
służy do skojarzeń polimorficznych .źródło
belongs_to
wystarcza?Możesz także użyć,
alias_attribute
jeśli nadal chcesz nazywać je również zadaniami:źródło
Aby wypełnić odpowiedź @ SamSaffron:
Możesz używać
class_name
z jednymforeign_key
lubinverse_of
. Ja osobiście wolę bardziej abstrakcyjną deklarację, ale tak naprawdę to tylko kwestia gustu:i musisz upewnić się, że masz
belongs_to
atrybut w modelu potomnym:źródło
Jeśli używasz has_many, i chcesz uzyskać alias:
źródło
Możesz to zrobić na dwa różne sposoby. Jednym z nich jest użycie „as”
lub
Oczywiście pierwszy byłby najlepszym sposobem na poradzenie sobie z tym.
źródło