Tengo productos, y algunos de esos productos tiene un subproducto.
Modelo:
Producto --------> has_one :subproducto
Subproducto —> belongs_to :producto
En la acción NEW de un controlador tengo esto:
@subproductos = Subproducto.find :all, :include => :producto
Hasta aqui lo hace bien, porque la consulta parece que la genera bien.
Y en la vista quiero formar un select para poder elegir entre los
subproductos. Para ello uso el helper collection_select.
Mi problema es que quiero mostrar el campo ‘nombre’ de Producto y quiero
usar el valor ‘id’ del Subproducto en el select.
Algo parecido a esto:
<%= f.collection_select :pro, @subproductos, :id, :nombre %>
Pero no me funciona. Porque no me reconoce el simbolo ‘:nombre’, que
pertenece a Producto.
¿Alguna idea?
On 8/9/07, Paco García [email protected] wrote:
Y en la vista quiero formar un select para poder elegir entre los
subproductos. Para ello uso el helper collection_select.
Mi problema es que quiero mostrar el campo ‘nombre’ de Producto y quiero
usar el valor ‘id’ del Subproducto en el select.
Algo parecido a esto:
<%= f.collection_select :pro, @subproductos, :id, :nombre %>
Pero no me funciona. Porque no me reconoce el simbolo ‘:nombre’, que
pertenece a Producto.
¿O sea que Subproducto debería heredar de Producto?
Si no es así, quizás te sirva esto, que a mí a veces me viene bien y
es una buena forma de encapsular lógica. Si la regla es “los
subproductos toman su nombre del producto padre”, entonces:
class Subproducto < AR::Base
belongs_to :producto
def nombre
producto.nombre if producto
end
end