Foros del Web » Programando para Internet » Ruby »

[SOLUCIONADO] accepts_nested_attributes_for no funciona

Estas en el tema de accepts_nested_attributes_for no funciona en el foro de Ruby en Foros del Web. Espero que alguien pueda ayudarme con esto: Modelos: Código: class House < ActiveRecord::Base has_one :house_type accepts_nested_attributes_for :house_type end class HouseType < ActiveRecord::Base belongs_to :house end ...
  #1 (permalink)  
Antiguo 03/03/2015, 19:50
 
Fecha de Ingreso: junio-2011
Mensajes: 478
Antigüedad: 12 años, 10 meses
Puntos: 13
Pregunta accepts_nested_attributes_for no funciona

Espero que alguien pueda ayudarme con esto:
Modelos:
Código:
class House < ActiveRecord::Base
    has_one :house_type
    accepts_nested_attributes_for :house_type
end

class HouseType < ActiveRecord::Base
    belongs_to :house
end
Controlador houses_controller

Código:
def create
    if house.create(house_type_params)
        render :json => trip
    end
end

private
def house_type_params
    params.permit(:attr1, :attr2, house_type_attributes: [:attrA, :attrB])
end
Cuando hago el create solo me crea los registros para house y no los de house_type.
En la terminal me devuelve lo siguiente, que interpreto que no puede acceder a los atributos de house_type porque aún no existe.

Código:
Unpermitted parameter: attrA, attrB
INSERT INTO `house` (`attr1`, `atrr2`) VALUES ('Valor 1', 'valor 2')
SELECT  `house_type`.* FROM `house_type` WHERE `house_type`.`house_id` = 1 LIMIT 1
Por si sirve de algo, estoy usando Postman de Chrome para cargar los parámetros.
  #2 (permalink)  
Antiguo 05/03/2015, 08:01
 
Fecha de Ingreso: junio-2011
Mensajes: 478
Antigüedad: 12 años, 10 meses
Puntos: 13
Respuesta: accepts_nested_attributes_for no funciona

Ya encontré el problema, al usar Postman, no me estaba tomando los parámetros de la asociación, para eso hay que pasárselos como un array de la siguiente manera:

house_type_attributes[attrA]
house_type_attributes[attrB]

Etiquetas: rubyonrails
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:31.