mi pregunta es , como puedo insertar valores en la tabla intermedia de
esta
relacion :
budget_categories
budget_categories_items
items
me imagino distintas formas de hacerlo, pero no se si hay alguna forma
estándar y simple para lograr esto, ya que lo que me imagino es un poco
rebuscado y tengo mis sospechas de que sea la mejor solucion.
mi pregunta es , como puedo insertar valores en la tabla intermedia de esta
relacion :
En los modelos relacionados añade la una relación has_many a la tabla
intermedia.
Quitate de la cabeza la relación que tienes ahora mismo, y piensa en una
tabla y la tabla de relaciones. Esa relación es una relación 1 a muchos,
por
lo que para el caso, en ambas tablas (o solo en una si lo necesitas),
añades
el has_many, y en la tabla intermedia el belongs_to.
class BudgetCategoryItems < AR:Base
belongs_to :budge_category
belongs_to :item
end
class Item < AR:Base
has_many :budget_category, :through => BudgeCategoryItems
has_many :budget_category_items, :dependent => :destroy
end
Y salvo que haya metido la pata en como especificar el througt, ahora ya
puedes acceder de manera normal. @budget_category.budget_category_items.first(:conditions => {:item => @item})
Es lo primero que se me ocurre. Ahora mismo no se si hay alguna otra
forma
de hacerlo.
es exactamente la relacion que tengo, ya que asi se generan las
relaciones
has_many :througth con un has_many de la tabla intermedia.
mi pregunta basicamente es como ingresar los datos de la tabla
intermedia (
budget_category_items) ya que tengo datos especificos que necesito para
asociar a los items.
el asunto es que cuando hago esto:
@budget_category.items<<@item
la tabla intermedia se genera automaticamente, mi duda esta en como
insertar
datos a algunos campos especificos de la tabla intermedia en ese paso
mi pregunta basicamente es como ingresar los datos de la tabla intermedia
(budget_category_items) ya que tengo datos especificos que necesito para
asociar a los items.
el asunto es que cuando hago esto:
@budget_category.items << @item
la tabla intermedia se genera automaticamente, mi duda esta en como insertar
datos a algunos campos especificos de la tabla intermedia en ese paso
No es posible. Si necesitas inicializar mas columnas en la tabla
intermedia has de trabajar con ese modelo.
mi pregunta basicamente es como ingresar los datos de la tabla intermedia
(budget_category_items) ya que tengo datos especificos que necesito para
asociar a los items.
el asunto es que cuando hago esto:
@budget_category.items << @item
la tabla intermedia se genera automaticamente, mi duda esta en como insertar
datos a algunos campos especificos de la tabla intermedia en ese paso
Yo creo que quieres algo como “Many-to-Many Relationships with Extra
Data” lo puedes encontrar en Google o en “Rails Recipes - Recipe 22”.