Tengo un usuario y un modelo de perfil. Un usuario puede tener muchos perfiles. Necesito acceder a una sola información de la sección de perfiles (a saber, el número de teléfono) en mi modelo de usuario durante el proceso de creación del usuario. Por lo tanto, estoy tratando de hacerlo a través del attr_accessible
. Mi user.rb se ve así.Formas anidadas en rieles: acceso al atributo en la relación has_many
has_many :profiles
attr_accessible :handle, :email, :password, :profile_mobile_number
attr_accessor : :profile_mobile_number
El problema que estoy enfrentando es que cuando trato de llamar al método getter profile_mobile_number en un método en el user.rb (el método es privado, aunque creo que no importa), I' m obteniendo un valor nulo Yo uso el siguiente en mi forma de usuarios/new.html.erb
Mi pregunta es ¿cuál es la forma correcta de hacer esto? Debería usar <% f.fields_for :profile do |ff| -%>
o <% f.fields_for :profiles do |ff| -%>
(observe que el segundo es plural). Cuando uso el plural: perfiles, ni siquiera veo los campos en el formulario. ¿Que me estoy perdiendo aqui? ¿Y cuál es el tiempo que debe usarse en el modelo user.rb? : profile_phone_number o: profiles_phone_number? Gracias.
Como dije, estaba usando f.fields_for: profiles y los campos en el formulario no aparecían. Resulta que tuve que agregar @ user.profiles.build en el controlador. Pero ahora no puedo tener tanto attr_accessible como accept_nested_attributes_for en user.rb. El primero anula el último. Pero sí quiero tener attr_accesible para los atributos del modelo de usuario sin restringir el acceso a los atributos del modelo de perfil. ¿Algunas ideas? Gracias. –