He empezado esta semana con esto del ROR
y me gusta mucho, pero veo q algunas cositas se me escapan.
tengo una tabla empresas y otra actividads
de forma q empresa <-- 0,1 – Actividads (igual puse la flecha al
reves)
de forma q creo los modelos
empresa.rb
has_one :actividad
y
actividad.rb
belongs_to :empresa
creo los scaffold para ahorar lios.
por supuesto empresa me funciona bien.
ahora quiero q tras completar el formulario de una nueva empresa
aparezca el formulario de la actividad:
y le meto mano al codigo del controlador de empresa y lo dejo asi,
def newempresa
@empresa = Empresa.new
end
def createempresa
@empresa = Empresa.new(params[:empresa])
if @empresa.save
flash[:notice] = ‘Empresa was successfully created.’
redirect_to :action => ‘newactividad’, :id => @empresa
else
render :action => ‘newempresa’
end
end
modifico el nombre de los ficheros de las vistas de empresa y de
actividad q venian del scaffold
PERO AQUI ES DONDE CREO Q ALGO ALGO MAL:
dentro del mismo controlador de empresa, añado las funciones de creacion
de actividad. Q despues de aplicar la tecnica de ensayo y error lo tengo
asi,
(creo q no funciona, pero esa no es mi pregunta)
def newactividad
@empresa = Empresa.find(:id)
end
def createactividad
@empresa = Empresa.find(params[:id])
@actividad = Actividad.new(params[:actividad])
@empresa.actividad =@actividad
if @actividad.save
flash[:notice] = ‘Actividad was successfully created.’
redirect_to :action => ‘show’, :id => Empresa.find(params[:id])
else
render :action => ‘newactividad’, :id => Empresa.find(params[:id])
end
end
EL TEMA ES Q ME PARECE Q ME COMPLICO LA VIDA:
pasando variables e identificadores de empresa de aqui para aca.
pues en cada vista tengo q ir pasando el identificador del padre asi:
<%= start_form_tag :action => ‘createactividad’, :id => @empresa%>
y claro en algun sitio pierdo el valor del identificador de empresa y al
final me de error.
NO SE SI ESTA ES LA FORMA CORRECTA DE TRATAR LOS OBJETOS.