[Fwd: Re: Problema con save]

Pues que funciona genial!!!
Lo que no entiendo es porque no me daba problemas en el proyecto que
habíahecho de prueba… Además, creo que cuando lo implementé en su día, no sé
porqué me pareció necesaría esa línea. En fin, vamos aprendiendo poco a
poco.
Muchísimas gracias, de verdad
Ana

---------------------------- Mensaje original

Asunto: Re: [Ror-es] Problema con save
De: “Damian J.” [email protected]
Fecha: Mar, 29 de Mayo de 2007, 3:11 pm
Para: “La lista sobre Ruby On Rails (rubyonrails.com) en castellano”
[email protected]

On 5/29/07, [email protected] [email protected] wrote:

Hola de nuevo,
Tengo el mismo código en dos proyectos distintos (el primero era de
prueba) y en uno me funciona y en otro no. Aparentemente no tengo
diferencias, digo aparentemente porque yo no he metido nada nuevo, y
tampoco he encontrado nada diferente, pero ya sabeis que nunca se
sabe… El problema es a la hora de crear el objecto contrato, que no sé
porqué en un proyecto hace 2 INSERT (uno al hacer el new y otro el save)
y en el otro sólo uno.
flash[:notice] = ‘Contrato was successfully created.’
else
render :action => ‘new’
end
redirect_to :action => ‘ver’, :id => @contrato

Qué pasa si sacás la segunda línea?
@contrato.inmueble.clientes << Cliente.find(2)


Ror-es mailing list
[email protected]

On 5/29/07, [email protected] [email protected] wrote:

Pues que funciona genial!!!
Lo que no entiendo es porque no me daba problemas en el proyecto que había
hecho de prueba… Además, creo que cuando lo implementé en su día, no sé
porqué me pareció necesaría esa línea. En fin, vamos aprendiendo poco a
poco.
Muchísimas gracias, de verdad
Ana

Si todo anda, buenísimo :slight_smile:

Ya que estamos, te paso un mini-refactor de tu clase Contrato (sobre
todo por la parte del File.open!)

Veo que lo que querés es implementar un template en el cual se
reemplazan variables. Para esto podrías usar ERb [1], es muy fácil.

[1] http://www.ruby-doc.org/stdlib/libdoc/erb/rdoc/classes/ERB.html

class Contrato < ActiveRecord::Base
belongs_to :inmueble
belongs_to :cliente

before_create :sustituir_datos

def clientes
inmueble.clientes if inmueble
end

protected
def sustituir_datos
FileUtils.cp(ruta(‘Base’), ruta) unless File.exist?(ruta)

texto = File.read(ruta)

File.open(nuevo,‘w+’) do |file|
file.write(texto.sub(‘CLIENTE’, cliente.nombre))
end

self.documento = ruta
end

def ruta(base = nil)
File.join(RAILS_ROOT, “contratos/contrato#{base ||
inmueble.nombre}.txt”
end
end