En mi modelo de usuario podría tener:
has_many :tasks
y en mi modelo de tarea:
belongs_to :user
Luego, suponiendo que la clave externa 'user_id' estuviera almacenada en la tabla de tareas, podría usar:
@user.tasks
Mi pregunta es, ¿cómo declaro la relación has_many de tal manera que pueda referirme a las tareas de un usuario como:
@user.jobs
... o ...
@user.foobars
Gracias un montón.
ruby-on-rails
has-many
doctor naranja
fuente
fuente
Respuestas:
Dale una oportunidad a esto:
Tenga en cuenta que
:as
se usa para asociaciones polimórficas .fuente
belongs_to
suficiente?También podría usarlo
alias_attribute
si aún desea poder referirse a ellos como tareas también:fuente
Para completar la respuesta de @ SamSaffron:
Se puede usar
class_name
conforeign_key
oinverse_of
. Personalmente prefiero el declarativo más abstracto, pero en realidad es solo cuestión de gustos:y debe asegurarse de tener el
belongs_to
atributo en el modelo secundario:fuente
Si usa has_many through y quiere un alias:
fuente
Podrías hacer esto de dos maneras diferentes. Una es usando "como"
o
Obviamente, el primero sería la mejor manera de manejarlo.
fuente