Estoy teniendo un momento extremadamente difícil para averiguar cómo serializar los atributos anidados de un modelo en rieles. Tengo un RecipeTemplate que almacenará una Receta ya existente en su atributo template_data. La receta tiene atributos anidados a dos niveles de profundidad.¿Cómo serializar el modelo anidado en rieles?
Esto es en los carriles 3.1.0.rc4
class RecipeTemplate < ActiveRecord::Base
serialize :template_data, Recipe
...
end
class Recipe < ActiveRecord::Base
has_many :ingredients
accepts_nested_attributes_for :ingredients
...
end
ingredientes en la receta de atributos también ha anidada (SubIngredients).
Si fijo el template_data con un objeto de esta manera:
Recipe.includes(:ingredients => [:sub_ingredients]).find(1)
Voy a buscar un TypeError "no se puede volcar Clase clase anónima" que tiene sentido, ya que no sabe cómo serializar los ingredientes o SubIngredientes.
Cómo se puede serializar los atributos anidados en un modelo para que pueda utilizar:
serialize :template_data, Recipe
O tengo para serializar los datos de alguna otra manera y llevar a cabo el tipo de seguridad comprueba a mí mismo?
Gracias de antemano por cualquier ayuda
¿Puede almacenar datos en el campo serializado? Por ejemplo, ¿puede pasarle una variedad de ingredientes y guardarlos? – thoughtpunch
¿Por qué intenta serializar estos modelos que ya están asociados a través de las relaciones? Parece que está intentando guardar datos relacionados en una sola columna en una tabla cuando todos esos datos ya están guardados en su propia tabla en la base de datos, que es la forma en que debería hacerse en primer lugar. –