rails form_with form_for form for ruby-on-rails has-many

ruby-on-rails - form_with - select rails helper



Rails tiene muchos con el nombre de alias (3)

En mi modelo de Usuario podría tener:

has_many :tasks

y en mi modelo de Tarea:

belongs_to :user

Entonces, suponiendo que la clave externa ''user_id'' se almacenara en la tabla de tareas, podría usar:

@user.tasks

Mi pregunta es, ¿cómo declaro la relación has_many de modo que pueda referirme a las tareas de un usuario como:

@user.jobs

... o ...

@user.foobars

Gracias un montón.


Dale una oportunidad:

has_many :jobs, foreign_key: "user_id", class_name: "Task"

Tenga en cuenta que :as se usa para asociaciones polimórficas .


Podrías hacer esto de dos maneras diferentes. Una es mediante el uso de "como"

has_many :tasks, :as => :jobs

o

def jobs self.tasks end

Obviamente, la primera sería la mejor manera de manejarlo.


También puede usar alias_attribute si aún desea poder referirse a ellos como tareas:

class User < ActiveRecord::Base alias_attribute :jobs, :tasks has_many :tasks end