Actualizar campoantes del update


#1

Buenas estimados amigos de la lista.

tengo una pequeña duda para ustedes, para mi es grande.

antes de hacer un update necesito ir a traer un valor de otro modelo y
llevarlo a un campo del modelo que quiero actualizar, luego gurdar los
datos en el modelo.

def update
@funcionario = Funcionario.find(params[:id])
respond_to do |format|
#antes de hacer esto debo llenar el campo que tengo que traer de
otro modelo
if @funcionario.update_attributes(params[:funcionario])
flash[:notice] = ‘Funcionario was successfully updated.’
format.html { redirect_to funcionarios_path }
format.xml { head :ok }
else
format.html { render :action => “edit” }
format.xml { render :xml => @funcionario.errors, :status =>
:unprocessable_entity }
end
end
end

de antemano gracias por la ayuda


#2

en el modelo funcionario hacer un metodo que busque el campo en la otra
tabla/modelo y lo guarde en un variable. Este metodo lo invocas en un
before_safe :mimetodo
y luego guardas los datos del modelo funcionario con ese campo ya
sabido.

Esto te lo he explicado a pelo, sin ver si se dice before_safe. Busca
algo
parecido en la API. O espera a una respuesta más afinada

Un saludo

El 18 de abril de 2009 14:54, Aprendiz_ror Ruby on rails <
removed_email_address@domain.invalid> escribió:


#3

Tal vez podrias hacer algo asi:

class Funcionario < AR
before_update :update_model #escoge un buen nombre aqui

private
def update_model
otro_modelo = OtroModelo.find…
self.attr = otro_modelo.attr
self.attr = otro_modelo.attr

end
end

Si esto no te sirve, seria genial si puedes explicar el contexto de tu
aplicación, derrepente puede haber un problema de diseño por ahi.

Saludos.


#4

¿cómo?
Este es un detalle que molaría saber.

2009/4/19 Aprendiz_ror Ruby on rails removed_email_address@domain.invalid


#5

Mil gracias a todos, ya logré solucionarlo.