que esta mal ?

15 views
Skip to first unread message

Root(6)

unread,
Mar 9, 2011, 5:37:20 PM3/9/11
to Ruby SIG Mexico
hola buen dia soy nuevo ene l grupo
y tengo una duda estoy casi casi copiando el procedimiento de un libro
Building Dynamic Web 2.0
Websites with Ruby on Rails

pero el procedimiento para enlazar dos campos de distintos
controladores ( creo si es el termino )

tengo una tabla que se llama clientes
y otra que se llama contactos

en la tabla de clientes, hay un campo que se llama "co1" que es
para almacenar el nombre y que me vincule a un contacto

el procedimiento es

<p><label for="tale_genre_name">Genre<br/>
<select name="genre">
<% @genres.each do |genre| %>
<option value="<%= genre.id %>">
<%= genre.genre_name %>
</option>
<% end %>
</select>
</p>

yo lo estoy poniendo asi

<p>
<%= f.label :co1 %><br />
<select nombre="co1">
<% @co1,each do |nombre| %>
<option value=<%=contacto.nombre%>">
<%=contacto.nombre%>
</option>
<% end %>
</select>
</p>

pero me marca un error

es este

SyntaxError in Clientes#new

Showing app/views/clientes/new.html.erb where line #46 raised:

compile error
C:/Users/arroyoj/My Documents/Aptana Studio Workspace/terminales/app/
views/clientes/new.html.erb:46: syntax error, unexpected ';',
expecting tCOLON2 or '[' or '.'
; end ; @output_buffer.concat "\n\t</select> \n </p>\n\n <p>\n "
^
Extracted source (around line #46):

43: <option value=<%=contacto.nombre%>">
44: <%=contacto.nombre%>
45: </option>
46: <% end %>
47: </select>
48: </p>

por que un error en el end ?

me pueden ayudar ?

Edgar J. Suarez

unread,
Mar 9, 2011, 5:45:57 PM3/9/11
to ruby-s...@googlegroups.com
Hola,

Dos cosas,

Al parecer tienes una coma en donde debería ir un punto, en la línea

<% @co1,each do |nombre| %>

Además de que estas usando la variable 'contacto' dentro de la iteración each en donde tu iterador lo llamaste 'nombre'.

debería ser:

<% @co1.each do |contacto| %>

Y la otra, es que hay helpers para ahorrarte este tipo de cosas. El render de tus options quedaría más fácil con:

<=% f.collection_select :co1, @co1, :id, :name %>

Lo que te generaría tu select con la lista de tus contactos, poniendo su id como value y name como texto.

Saludos.


edgar.js

Israel Benitez

unread,
Mar 9, 2011, 5:57:07 PM3/9/11
to ruby-s...@googlegroups.com
Además de lo que dice Edgar, hay otro error en el html, en la lína que dice:

<option value=<%=contacto.nombre%>">

debe decir:

<option value="<%=contacto.nombre%>">

Y si como dice Edgar, hay helpers para eso.

Al principio perguntas si 'controlador' es el término correcto. De acuerdo con lo que mencionas, debes estar enlazando modelos.

La forma estándard es que en el modelo Cliente tengas un campo contacto_id y tambien 

  belongs_to :contacto

Y en el formulario (suponiendo que uses form_for)

<%= f.contacto_id, Contacto.all.map{|contacto| [contacto.nombre, contacto.id]}  %>

Espero que esto te ayude.

Saludos

Israel.

--
You received this message because you are subscribed to the Google Groups "Ruby SIG Mexico" group.
To post to this group, send email to ruby-s...@googlegroups.com.
To unsubscribe from this group, send email to ruby-sig-mex...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/ruby-sig-mex?hl=en.

Jonathan Arroyo

unread,
Mar 9, 2011, 6:25:04 PM3/9/11
to ruby-s...@googlegroups.com
perdon 

la parte de los helpers no me queda clara 

los helpers son archivos vacios que estan en la carpeta helpers !!



El 9 de marzo de 2011 16:45, Edgar J. Suarez <edga...@gmail.com> escribió:

--
You received this message because you are subscribed to the Google Groups "Ruby SIG Mexico" group.
To post to this group, send email to ruby-s...@googlegroups.com.
To unsubscribe from this group, send email to ruby-sig-mex...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/ruby-sig-mex?hl=en.



--
Jonathan Arroyo

<a href="http://ubuntucounter.geekosophical.net" title="The Ubuntu Counter Project - user number # 30498"><img src="http://ubuntucounter.geekosophical.net/img/ubuntu-blogger.php?user=30498" alt="The Ubuntu Counter Project - user number # 30498" /></a>

Edgar J. Suarez

unread,
Mar 9, 2011, 6:34:28 PM3/9/11
to ruby-s...@googlegroups.com
Los helpers son módulos que rails trae por default. Claro está que tú puedes crear tus propios helpers (para eso son los archivos vacíos), pero los nativos de rails son estos: http://railsapi.com/doc/rails-v3.0.4/classes/ActionView/Helpers.html


edgar.js

Israel Benitez

unread,
Mar 9, 2011, 9:07:08 PM3/9/11
to ruby-s...@googlegroups.com
Esos que vez ahí son los que tu crearías para tu aplicación.

A los que nos referimos es a funciones ya incorporadas en Rails que ya escriben mucho del HTML.

Por ejemplo, uno de los helpers mas usados es link_to. En la api están documentados: railsapi.com o api.rubyonrails.org

Jonathan Arroyo

unread,
Mar 10, 2011, 12:15:17 PM3/10/11
to ruby-s...@googlegroups.com
pues no no doy por que cuando le doy salvar (CREATE)  me manda al cuerno con un error 


NoMethodError in Clientes#create

Showing app/views/clientes/new.html.erb where line #42 raised:

You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each

Extracted source (around line #42):

39:   <p>
40:     <%= f.label :co1 %><br />
41: 	<select nombre="co1">
42: 		<% @co1.each do |contacto| %>
43: 		<option value="<%=contacto.nombre%>">
44: 		<%=contacto.nombre%>
45: 		</option>
NOTA estoy leyendo el maldito libro de los descarrilados

chilli...@gmail.com

unread,
Mar 8, 2011, 10:53:46 PM3/8/11
to ruby-s...@googlegroups.com
Me parece que el problema lo tienes en el controlador. No estás cargando nada en @co1
Saludos,

* Mensaje original *
De:
arr...@gmail.com
Enviado:
11:15:42am
10/03/2011
Para:
ruby-s...@googlegroups.com
Asunto:
Re: [Ruby SIG Mexico] que esta mal ?

pues no no doy por que cuando le doy salvar (CREATE) me manda al cuerno con
un error


NoMethodError in Clientes#create

Showing *app/views/clientes/new.html.erb* where line *#42* raised:

You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each

Extracted source (around line *#42*):
>>> <% @co1*.*each do |*contacto*| %>

Israel Benitez

unread,
Mar 10, 2011, 12:31:48 PM3/10/11
to ruby-s...@googlegroups.com
Pues aqui dice que la variable @co1 no está definida, es decir, es un objeto nulo (nil)

Según veo, en el controlador deberías tener una linea mas o menos asi:

@co1 = Contacto.all

Asi, en @co1 tendrás una lista (array) de los contactos sobre la que se iterará para poner las opciones en el Select. 

Debo decirte, que ese codigo que tienes, esta bien si estás practicando y dando tus primero pasos en rails, pero resulta de cierta forma 'Anti-rails' porque estás escribiendo código que ya está hecho en lo helpers (que ayer comentába Edgar).

Por otro lado, en donde tienes:

<select nombre="co1">

debes tener:

<select name="co1">

Es HTML, el atributo es 'name' no es una variable.

No conozco el libro que estás usando (y ya me quitaste las ganas de siquiera echarle un ojo). Te recomiendo este si estas usando ralis3 (que deberías, no tiene caso empezar con el que ya va de salida)

Jonathan Arroyo

unread,
Mar 10, 2011, 12:51:34 PM3/10/11
to ruby-s...@googlegroups.com
de hecho si 

son mis pininos en ruby

el libro pues pintava bastante bien pero si creo que hay que pedir a los editores
que le pongan la nota "basado en rails 1 punto lo que sea" 
ya que entiendo que ha cambiado mucho de la version 2 a la 3 
por ejemplo en la version 2 podias tener la tabla y rails podia generar 
el controlador tomando los datos de la base de datos ( valga la redundancia)
ahora no 

antes era find_all
ahora es find(:all)

cositas como esas que pues si como principiante
como que no esta facil saber que ya cambio 
por que pues vamos casi casi copiando el codigo 
para entender la estructura y despues poder utilizar la estructura
en otras cosas.
( por lo menos yo asi lo hago )

y pues del codigo que esta hay la mayoria me lo genero el scaffold
no he metido mas que 5 lineas de codigo a lo mucho 

pero hay vamos checandolo 

--
You received this message because you are subscribed to the Google Groups "Ruby SIG Mexico" group.
To post to this group, send email to ruby-s...@googlegroups.com.
To unsubscribe from this group, send email to ruby-sig-mex...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/ruby-sig-mex?hl=en.

Martin Trejo

unread,
Mar 10, 2011, 1:31:31 PM3/10/11
to ruby-s...@googlegroups.com, Jonathan Arroyo
Lo único constante es el cambio.

No esperes a que detengan todas las actualizaciones de rails solo para facilitarle la vida a los principiantes.

Tus preguntas han tenido algo de sentido y por eso has tenido respuesta. Solo te falta mejorar tus habilidades para encontrar la información y a leer la documentación disponible.

Saludos,

2011/3/10 Jonathan Arroyo <arr...@gmail.com>

Carlos Ortega

unread,
Mar 10, 2011, 2:43:27 PM3/10/11
to ruby-s...@googlegroups.com
Johnathan

Martin, tiene razón...(hard but its true)
Personalmente creo que esto tiene pros y contras.
Te obliga a meterte con mas ahínco y a ser mas abierto en muchos sentidos, sobre todo en la forma de aprender, participar y compartir.

Pero a la vez es puede ser mas "molesto" e incrementa la dificultad.
Sin embargo creo que es inegable que no solo 1 sino varias personas te respondieron muy rápidamente tratando de ayudarte desinteresadamente ¿ No lo crees ?

Salu2
Carlos


From: Martin Trejo <chilli...@gmail.com>
To: ruby-s...@googlegroups.com
Cc: Jonathan Arroyo <arr...@gmail.com>
Sent: Thu, March 10, 2011 12:31:31 PM
Subject: Re: [Ruby SIG Mexico] que esta mal ?

Jonathan Arroyo

unread,
Mar 10, 2011, 2:57:02 PM3/10/11
to ruby-s...@googlegroups.com
no si de eso no me quejo el grupo ( ó la lista ) respondieron con prontitud
muy agil y accesible el grupo muy muy muy agradeciddo 

pero sigo con lo mismo las convenciones no deverian de cambiar de una version a otra
en algunos otros lenguajes cuando hacen cambios en las convenciones 
dejan abierta las dos posivilidades ( la vieja y la nueva ) 
para que el usuario se valla acostumbrando hasta que un buen dia desaparece.
y si digo lo del libro es mera sugerencia 
que ahroa que me he estado metiendo a ruby on rails 
y que tengo mi wordpress, creo mas bien definitivamente 
voy a poner una area especificamente para esto, ademas de un wiki

si alguien le interesa participar quedan tooood@s invitados 

mi blog es 


y dentro de dos o tres dias ya estaran los cambios 


y reitero muchas gracias a la lista han digo muy amables y de mucha ayuda.

GRACIAS a TOD@S

atte Jonathan

Edgar J. Suarez

unread,
Mar 10, 2011, 6:46:11 PM3/10/11
to ruby-s...@googlegroups.com
Hola Jonathan,

Entiendo tu punto, y estoy de acuerdo contigo. El API de un framework no debería cambiar tanto de versión a versión, y es por eso que se reescribió rails 3 casi desde cero. Uno de los problemas más importantes a resolver era precisamente tener un API consistente que no cambiara de versión a versión. Por eso (en teoría), rails 4 no debería cambiar mucho cuando salga...

Gracias por compartir los recursos, también puedes checar http://rails.mx no hay tantos posts todavía pero poco a poco esperamos ir creciendo.

Saludos.


edgar.js

Jonathan Arroyo

unread,
Mar 14, 2011, 3:47:02 PM3/14/11
to ruby-s...@googlegroups.com
pues sigo atorado 

espero me puedan echar una mano ya me revise el libro mildito de los descarrilados 
y se salta esa parte 
en la que se enlazan dos modelos 

echenle un ojo a mi codigo pls

  def create
    @cliente_id=params[:contacto]
     @cliente = Cliente.new(params[:nombre])
   respond_to do |format|
      if @cliente.save
        flash[:notice] = 'Cliente was successfully created.'
        format.html { redirect_to(@cliente) }
        format.xml  { render :xml => @cliente, :status => :created, :location => @cliente }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @cliente.errors, :status => :unprocessable_entity }
      end
    end
  end


ya no me marca errores 

nomas no me guarda los datos

GRACIAS

Israel Benitez

unread,
Mar 14, 2011, 4:20:41 PM3/14/11
to ruby-s...@googlegroups.com
El 14 de marzo de 2011 13:47, Jonathan Arroyo <arr...@gmail.com> escribió:
pues sigo atorado 

espero me puedan echar una mano ya me revise el libro mildito de los descarrilados 
y se salta esa parte 
en la que se enlazan dos modelos 

echenle un ojo a mi codigo pls

  def create
    @cliente_id=params[:contacto]
     @cliente = Cliente.new(params[:nombre])
   respond_to do |format|
      if @cliente.save
        flash[:notice] = 'Cliente was successfully created.'
        format.html { redirect_to(@cliente) }
        format.xml  { render :xml => @cliente, :status => :created, :location => @cliente }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @cliente.errors, :status => :unprocessable_entity }
      end
    end
  end


ya no me marca errores 

nomas no me guarda los datos

GRACIAS


Según este código, la variable @cliente_id, no se usa para nada, de hecho, no creo que sirva para nada. revisa los 'params' que llegan al controlador, eso aparece en el log, lo puedes ver en el misma ventana del servidor.

la línea 

@cliente = Cliente.new(params[:nombre])

debería tener un hash como parámetro del método new. Lo que se estila en rails es que el formulario mande todos los datos en un hash (eso es más fácil cuando usas el helper form_for o su contraparte de formtastic, semantic_form_form). En todo caso, suponiendo que tuvieras un cliente llamado "Israel" e la misma consola podrías crear el registro asi:

c = Cliente.new(:nombre => 'Israel')
c.save

Ahora, si en la llave :nombre del hash params está el nombre del cliente, debería ser:

Cliente.new(:nombre => params[:nombre])

Si el  elemento <input> del código html tuviera name = 'cliente[nombre]', en tu controlador solo requerirás colocar:

Cliente.new(params[:cliente])

El propio rails se encarga de construir el hash con los atributos del cliente a partir de los parámetros de la petición HTTP. Esto, es muy util, porque podrías tener muchos elementos en el formulario, ya sea input (text, hidden, etc), select, textarea, etc, pero cuyo atributo name sea, por ejemplo, "cliente[nombre]", "cliente[apellidos]", etcétera. y la línea anterior, almacenaría todos los campos sin necesidad de que escribas el código por cada uno de los campos. Y si vamos un poco más allá, si tienes las validaciones correctas, cuando algo sale mal (de acuerdo con el código que tienes), entonces renderiza nuevamente el formulario (puedes poner que muestre los mensajes de error en la vista), de esta forma el usuario ya puede saber que dato le falló.

Si te deseperas,  agrégale temporalmente un signo de admiración en save, para que quede:

if @cliente.save!

Verás que 'truena' como ejote, y te darás cuenta exactamente en donde falla (técnicamente, debo decirte que lo que va a pasar es que "save!" genera una excepción en caso de que no pueda guardar el registro en la BD, a diferencia de "save" que solo devuelve falso o verdadero.

Espero que esto te ayude un poco.

Juan Alvarez

unread,
Mar 14, 2011, 5:54:06 PM3/14/11
to ruby-s...@googlegroups.com
Qué tal Jonathan,

No estoy seguro si entiendo bien lo que quieres hacer pero el problema parece ser la manera en la que 
estás tratando de hacer la asociación entre la clase Contacto y la clase Cliente.

De acuerdo a lo que pusiste en tu primer correo:

> "en la tabla de clientes, hay un campo que se llama "co1" que es
> para almacenar el nombre y que me vincule a un contacto"

parece que quieres asociar clientes con contactos y de acuerdo a lo que intentas hacer en el controlador,
un cliente pertenece a un contacto. Si esto es correcto, la manera de hacerlo en Rails es primero declarar
las asociaciones entre los modelos:

class Cliente < ActiveRecord::Base
  belongs_to :contacto
end

class Cliente < ActiveRecord::Base
  belongs_to :contacto
end

Ahora, la tabla "clientes" debe tener un campo "contacto_id" que Rails utiliza para buscar las asociaciones
(me parece que es lo que intentabas con el campo "co1"). Puedes declarar esta asociación en la migración:

class CreateClientes < ActiveRecord::Migration
  def self.up
    create_table :clientes do |t|
      t.string :nombre
      t.references :contacto
  end
...
end

la clave está en la línea "t.references :contacto", que es lo mismo que declarar "t.integer :contacto_id".

Una vez que tengas esto y hayas migrado la bd, puedes probar en la consola:

@1.8.7@bcms ~/desktop/testa % script/console
Loading development environment (Rails 2.3.5)
ree-1.8.7-2010.02 > co = Contacto.new
 => #<Contacto id: nil, nombre: nil, created_at: nil, updated_at: nil> 
ree-1.8.7-2010.02 > co.clientes
 => [] 
ree-1.8.7-2010.02 > co = Contacto.create :nombre => "Pedro"
 => #<Contacto id: 1, nombre: "Pedro", created_at: "2011-03-14 21:40:32", updated_at: "2011-03-14 21:40:32"> 
ree-1.8.7-2010.02 > ree-1.8.7-2010.02 > co.clientes.create :nombre => "Juan"
 => #<Cliente id: 1, nombre: "Juan", contacto_id: 1, created_at: "2011-03-14 21:40:59", updated_at: "2011-03-14 21:40:59"> 
ree-1.8.7-2010.02 > co.clientes
 => [#<Cliente id: 1, nombre: "Juan", contacto_id: 1, created_at: "2011-03-14 21:40:59", updated_at: "2011-03-14 21:40:59">] 
ree-1.8.7-2010.02 > co. clientes.first.nombre
 => "Juan" 

Las asociaciones que declaramos en las clases Cliente y Contacto te dan métodos para crear, consultar y eliminar
registros asociados, por ejemplo:

co = Contacto.new
co.clientes
co.clientes.first
co.clientes.create
co.clientes.build
etc, etc,

Consulta la documentación para más ejemplos (el link es para rails 3.0.5 y en el ejemplo estoy usando rails 2.5.5).
No se qué version de Rails estés usando pero los principios son los mismos.

En el controlador ClientesController, puedes hacer algo así:

  def create
    @contacto = Contacto.find params[:contacto_id]
    @cliente = @contacto.clientes.new params[:cliente]

    respond_to do |format|
      if @cliente.save
        flash[:notice] = 'Cliente was successfully created.'
        format.html { redirect_to(@cliente) }
        format.xml  { render :xml => @cliente, :status => :created, :location => @cliente }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @cliente.errors, :status => :unprocessable_entity }
      end
    end
  end

La clave está en la asociación:

@cliente = @contacto.clientes.new params[:cliente]

donde params[:cliente] debe ser algo como:
{:nombre => "Isaac", :apellido_paterno => "Ramirez"}

Espero no estar muy equivocado con lo que quieres hacer y esto te sirva. 
Por si se chacaleó el formato: https://gist.github.com/869931

Saludos,
Juan

Jonathan Arroyo

unread,
Mar 14, 2011, 7:50:39 PM3/14/11
to ruby-s...@googlegroups.com

a ver es que ya cambie el es quema de la base de datos para apegarme al estandar 

tengo que un cliente debe de tener 4 contactos, 

tengo el modelo de cliente asi 
clientes clientes_id:integer nombre:string calle:string colonia:string cp:string rfc:string notas:text contacto1_id:integer contacto2_id:integer contactocto3_id:integer contacto4_id:integer 

tengo el modelo de contactos asi 

contacto contacto_id:integer nombre:string telefono:string email:string observaciones:text

la relación devenir de ser asi 

class Cliente < ActiveRecord::Base
  has_many :contacto
end

class Contacto < ActiveRecord::Base
  belongs_to :cliente
end

el clientes_controller.rb en la parte de create esta asi 

 def create
    @cliente = Cliente.new(params[:cliente])
    @cont1 =Contacto.find(:all)
    respond_to do |format|
      if @cliente.save
        flash[:notice] = 'Cliente was successfully created.'
        format.html { redirect_to(@cliente) }
        format.xml  { render :xml => @cliente, :status => :created, :location => @cliente }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @cliente.errors, :status => :unprocessable_entity }
      end
    end
  end

el view new.html.erb esta asi en la parte de contacto1_id

  <p>
    <%= f.label :contacto1_id %><br />
<select nombre="contacto1_id">
<% @contacto1_id.each do |contacto| %>
<option value ="<%contacto.nombre%>"
                <% contacto.nombre%>
<%end%>
</option>
</p>

ya no le hayo 

ya me hice bolas :S
35F.gif

Juan Alvarez

unread,
Mar 14, 2011, 8:22:01 PM3/14/11
to ruby-s...@googlegroups.com
Si partes de que:
> "Un cliente debe tener 4 contactos"

En Rails, eso se traduce a:
cliente => has_many :contactos

class Cliente < AR::Base
  has_many :contactos
end

class Contacto < AR:Base
   belongs_to :cliente
end

Para que las relaciones funcionen, el único campo especial en la bd que necesitas es "cliente_id" en la tabla contactos.
Esto es, sólo un foreign key en la tabla contactos.

En la tabla clientes no necesitas:
clientes_id: => El id del cliente te lo da Rails por defecto y el campo se llama sólo "id"
contacto1_id, contacto2_id, contacto3_id ni contacto4_id 

En la tabla contactos, el único campo adicional que necesitas es:
cliente_id:integer

Es difícil ver cómo debe estar tu controlador sin ver el formulario completo. Según entiendo quieres crear
tanto el cliente como sus contactos al mismo tiempo. Para eso necesitas:

class Cliente < AR::Base
  has_many :contacts
  accepts_nested_attributes_for :contactos
end

Entonces, en tu formulario, puedes usar fields_for:

= form_for @cliente do |f|
= f.text_field :nombre
....
= fields_for :contactos do |c|
= f.text_field :nombre

Ahora, la macro has_many :contacts en la clase Cliente, no indica o limita que un cliente pueda
tener solo (o exactamente) 4 contactos, solo declara que un cliente tiene "muchos" contactos.
Es posible agregar una validación para no permitir que un cliente tenga más de 4 contactos pero
creo que tienes otras cosas de que preocuparte primero ;-).

Checa estos videos:


Saludos,
ja









ya me hice bolas :S<35F.gif>

Israel Benitez

unread,
Mar 14, 2011, 8:34:45 PM3/14/11
to ruby-s...@googlegroups.com
Ese modelo de cliente te va a dar bastantes problemas.

en primer lugar, quita el campo clientes_id. El estándard en rails es que la llave primaria sea 'id' y el rails la crea automáticamente, no te debes preocupar por ello.

En la tabla de clientes no requieres poner ningun dato sobre los contactos, puesto que la relación es que un cliente tiene muchos contactos, en tabla contactos es donde debes poner el campo cliente_id

Yo crearia los modelos asi:

rails generate model cliente nombre:string calle:string colonia:string notas:text
rails generate model contacto nombre:string telefono:string email:string observaciones:text cliente_id:integer

Ejecutas las migraciones (valdria la pena indexar el campo cliente_id en contactos).

en el modelo cliente:

has_many :contactos


en el modelo contactos:

belongs_to :cliente



Como estás escribiendo los modelos en español requerirás las reglas de pluralización, coloca lo siguiente en el archivo config/initializers/inflections.rb. Comenta o quita las pluralizaciones en inglés que vienen por default.

ActiveSupport::Inflector.inflections do |i|
  i.plural /^(.*)([lrnd])$/i, '\1\2es'
  i.singular /^(.*[aeiou])([lrnd])es$/i, '\1\2'
  i.plural /^(.*)z$/i, '\1ces'
  i.singular /^(.*)ces$/i, '\1z'
end


Por otro lado, en el archivo config/routes.rb podrías también configurar la relación uno a muchos de clientes y contactos.  Sin embargo, veo que lo que intentas es que en la misma página donde editas los clientes quieres editar los contactos. A eso le llaman 'nested forms', me parece que hay un par de rails casts sobre ello, puedes empezar aquí:


Por otro lado, en la página de rails recomiendan railsforzombies.org para empezar en rails, apenas vi la introducción y pinta como una buena opción didáctica y divertida, http://railsforzombies.org/
35F.gif
Reply all
Reply to author
Forward
0 new messages