Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/11/2006, 02:16
tomasulo
 
Fecha de Ingreso: agosto-2006
Mensajes: 316
Antigüedad: 18 años, 3 meses
Puntos: 0
Un padre un hijo

Parece ser q existe una error en el mensaje origunal:

tengo una tabla padre: empresa (:id) con una tabla hijo uno a uno llamada actividads (empresa_id)

Código HTML:
empresa.rb
  has_one   :actividad

y

actividad.rb
  belongs_to  :empresa
con scaffold creo todo lo necesario para gestionar empresa.

AHORA LLEGAN LOS PROBLEMAS.
cuando quiero añadir al formulario de entrada de datos para empresa y segundo formulario.

creo las vistas para actividads, enlazo los formularios
pasando el id de empresa como parametro:
<%= start_form_tag :action => 'createcentro', :id => @empresa %>

y creo los metodos para crear un registro actividad al estilo del scaffold:

Código HTML:
 def newactividad
        @empresa = Empresa.find(params[: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
pero la linea
if @actividad.save me da un error indicando:

Código HTML:
Mysql::Error: #42S22Unknown column 'id' in 'where clause':
 UPDATE actividads
  SET `empresa_id` = 24, `iae` = NULL,  ...
?->>>  WHERE id = 0
no me gusta saltarme este paso y no comprobar q el registrpo se guardo,
pero de todas formas veo q algo estoy haciendo mal si tengo q pasar tanto parametro de aqui alli, pues la programacion por objetos no es asi.