Forum: Rails-ES Como añadir una clase a RoR

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
4287232616a1dde31cd2dab154acad70?d=identicon&s=25 Pepe Sanchez (jsn1)
on 2008-10-07 13:41
Hola

he creado esta clase ruby, y me gustaria saber donde la añado en RoR.
como un control? Como un modelo?

class Contact
  def initialize(name, email, message)
    @name = name
    @email= email
    @message= message
  end

def name(name)
    @name = name
  end

  def email(email)
    @email= email

  end

  def message(message)
    @message= message
  end

end
7223c62b7310e164eb79c740188abbda?d=identicon&s=25 Xavier Noria (fxn)
on 2008-10-07 13:48
(Received via mailing list)
Hola Pepe, las dos preguntas que has enviado indican que necesitas
antes que nada leer algo y situarte. No se puede programar en Rails
sin tener un minimo de contexto acerca de como funcionan las cosas (no
es una asercion moral, quiero decir que de verdad no se puede :-).
F625b891618be8ec32547a07b3192bb0?d=identicon&s=25 Francesc Esplugas (fesplugas)
on 2008-10-07 14:09
(Received via mailing list)
2008/10/7 Xavier Noria <fxn@hashref.com>:

> Hola Pepe, las dos preguntas que has enviado indican que necesitas
> antes que nada leer algo y situarte. No se puede programar en Rails
> sin tener un minimo de contexto acerca de como funcionan las cosas (no
> es una asercion moral, quiero decir que de verdad no se puede :-).

Y para situarte nada mejor que "The Ruby Programming Language" [1] o
"Programming Ruby" [2] y Agile Web Development with Rails [3].

[1] http://oreilly.com/catalog/9780596516178/
[2] http://pragprog.com/titles/ruby3/programming-ruby-3
[3] http://pragprog.com/titles/rails2/agile-web-develo...
0f727db8f255bf1e8665f5cd8ebe9f8c?d=identicon&s=25 Adrián Mugnolo (Guest)
on 2008-10-07 14:16
(Received via mailing list)
> he creado esta clase ruby, y me gustaria saber donde la añado en RoR.
> como un control? Como un modelo?

Pepe,

Coincido con las respuestas anteriores de Xavier y Manuel.  En "Agile
Web Development with Rails" están respondidas ambas preguntas.  No
tienes que leer todo el libro, sólo el tutorial (la primera parte).
Como mucho, serán 150-200 páginas.

Saludos
B8eb6140a480852282b1deb8f7987a24?d=identicon&s=25 Silvio Quadri (Guest)
on 2008-10-07 16:08
(Received via mailing list)
2008/10/7 Pepe Sanchez <ruby-forum-incoming@andreas-s.net>
>
> Hola
>
> he creado esta clase ruby, y me gustaria saber donde la añado en RoR.
> como un control? Como un modelo?
>

La respuesta está en http://api.rubyonrails.com/ , en la
sección"Description of Contents"
Ahí se explica claramente dónde va cada cosa.
En el caso de la clase que creaste, el directorio lib parece ser el
más adecuado

Silvio
4287232616a1dde31cd2dab154acad70?d=identicon&s=25 Pepe Sanchez (jsn1)
on 2008-10-08 05:00
Hola,

en los libros de programacion Ruby se explica como crear clases,eso lo
tengo claro.

Lo que no comprendo es que cuando creo mi propia clase en RoR en que
sitio exacto la tengo que crear.

Por lo demas parece que os habeis subido a la parra para contestarme
oye!!!
F625b891618be8ec32547a07b3192bb0?d=identicon&s=25 Francesc Esplugas (fesplugas)
on 2008-10-08 06:47
(Received via mailing list)
Yo por ejemplo meto las clases en lib/.

On 08/10/2008, at 5:00, Pepe Sanchez <ruby-forum-incoming@andreas-
5c15703984caa012845b3cea129da936?d=identicon&s=25 Manuel González Noriega (Guest)
on 2008-10-08 09:44
(Received via mailing list)
2008/10/8 Pepe Sanchez <ruby-forum-incoming@andreas-s.net>

>
>
Hay mucho cretino amargado en esta lista, ni caso.

Me surge la duda ¿has leido las respuestas que te han dado desde la
parra?
Porque aparte de buenos consejos, te han dicho exactamente dónde tienes
que
crear la dichosa clase.

Por lo demás, first strike
http://en.wikipedia.org/wiki/Three_strikes_law
45742831d67c80d12cd7b24907b8d760?d=identicon&s=25 Sergio Gil Pérez de la Manga (Guest)
on 2008-10-08 10:16
(Received via mailing list)
2008/10/8 Pepe Sanchez <ruby-forum-incoming@andreas-s.net>:
>
Hola,

Aunque la respuesta estándar, que es la que te han dado y es correcta,
es ponerla en lib/, a veces hay algo más apropiado, teniendo en cuenta
"qué es", más allá de que sea una clase. En tu caso, yo creo que es un
modelo (no todos los modelos tienen por qué estar respaldados en base
de datos ni heredar de ActiveRecord::Base), y por tanto app/models
también es un buen sitio. Esto, por cierto, lo explican en el Agile
Web Development With Rails, donde en el tutorial (la aplicación de
tienda) usan un modelo no respaldado en base de datos.

Por otra parte, esos libros de programación Ruby que explican
cómocrear clases, a lo mejor los has leído un poco deprisa, porque tu
clase creo que no tiene ni pies ni cabeza. Yo la refactorizaría a algo
como:

class Contact

  attr_accessor :name, :email, :message

  def initialize(name, email, message)
   self.name = name
   self.email= email
   self.message= message
 end

end

Los métodos para establecer los atributos cambiarían de:

contact.email(nuevo_email)

a

contact.email = nuevo_email

Lo cual tiene mucho más sentido, además. Más detalles sobre
attr_accessor en cualquiera de los libros que ya te has leído, por
ejemplo en la página 555 del Programming Ruby, que seguro que es el
primero que leíste.

Otra posible refactorización sería usar Struct, una factoría de clases
que son sólo contenedores de datos (como la tuya), y dejarlo en un
simple:

Contact = Struct.new(:name, :email, :message)

Viene detalladamente explicada en lás páginas 626 y siguientes del
Programming Ruby, también las debiste pasar un poco deprisa.

Un saludo desde la parra y buena suerte,

--
Sergio Gil Pérez de la Manga
e-mail > sgilperez@gmail.com
blog > http://www.lacoctelera.com/porras
now > http://twitter.com/porras
4287232616a1dde31cd2dab154acad70?d=identicon&s=25 Pepe Sanchez (jsn1)
on 2008-10-08 12:18
Vaya!!!  como esta el patio, menuda mala leche hay por aqui!!!


bueno mi clase se escribe correctamente asi :

class Contact
  def initialize(name, email, message)
    @name = name
    @email= email
    @message= message
  end

def name
    @name
  end

  def email
    @email

  end

  def message
    @message
  end

end


siguiendo el modelo de "Programming Ruby", Parte I, Capitulo Clases
Objetos y Vriables, Parrafo Objectos y Atributos.
5c15703984caa012845b3cea129da936?d=identicon&s=25 Manuel González Noriega (Guest)
on 2008-10-08 12:47
(Received via mailing list)
2008/10/8 Pepe Sanchez <ruby-forum-incoming@andreas-s.net>

> Vaya!!!  como esta el patio, menuda mala leche hay por aqui!!!
>
>
¿Mala leche? ¿La mala leche de todas las personas que han usado tiempo
en
contestar a tu duda?

Por cierto, si no me equivoco, no has usado la palabra "gracias" para
responder a todas esas personas. Así que me gustaría que mandases un
mail
agradeciendo a:

- Xavier Noria
- Francesc Esplugas
- Adrián Mugnolo
- Silvio Quadri
- Sergio Gil

los consejos y la ayuda que te han prestado. Que tú no sepas qué hacer
con
esa ayuda no es óbice para que no muestres agradecimiento y (mínima)
educación.
45742831d67c80d12cd7b24907b8d760?d=identicon&s=25 Sergio Gil Pérez de la Manga (Guest)
on 2008-10-08 12:48
(Received via mailing list)
2008/10/8 Pepe Sanchez <ruby-forum-incoming@andreas-s.net>:
>  end
>  def message
>    @message
>  end
>
> end
>
>
> siguiendo el modelo de "Programming Ruby", Parte I, Capitulo Clases
> Objetos y Vriables, Parrafo Objectos y Atributos.
>

Me pregunto si te has leído mi email. No incluye nada de mala leche, y
sí una implementación alternativa de tu clase en una línea.

--
Sergio Gil Pérez de la Manga
e-mail > sgilperez@gmail.com
blog > http://www.lacoctelera.com/porras
now > http://twitter.com/porras
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2008-10-08 14:23
(Received via mailing list)
Pepe replanteate tu actitud. Por que de momento no tienes ni un amigo en
esta lista. Yo soy newbe y me siento muy agradecido de todo lo que
aporta
esta gente sólo porque quieren. Si tú (o yo ) entrams a la brava en la
lista
y preguntamos una obviedad (chorrada) enseguida se daran cuenta y te
darán
consejos para que mejores. ¿mala leche? la unica la tuya por tomarte a
mal
lo que se te dice.

2008/10/8 Sergio Gil Pérez de la Manga <sgilperez@gmail.com>
4287232616a1dde31cd2dab154acad70?d=identicon&s=25 Pepe Sanchez (jsn1)
on 2008-10-08 15:12
A ver, A ver. Al pan pan y al vino vino.

Yo entre aqui a este forum para hacer una pregunta simple y me habeis
contestado de forma muy desagradable.

A mi ese tipo de respuestas prepotentes no me interesan, asi que si
considerais que perdeis el tiempo pues no contesteis, y ya esta.

Aqui teneis la respuesta del foro en frances que es mucho mas normal:

http://www.ruby-forum.com/topic/167612#new

Saludos
5c15703984caa012845b3cea129da936?d=identicon&s=25 Manuel González Noriega (Guest)
on 2008-10-08 15:40
(Received via mailing list)
2008/10/8 Pepe Sanchez <ruby-forum-incoming@andreas-s.net>

> A ver, A ver. Al pan pan y al vino vino.
>
> Yo entre aqui a este forum para hacer una pregunta simple y me habeis
> contestado de forma muy desagradable.
>
> A mi ese tipo de respuestas prepotentes no me interesan, asi que si
> considerais que perdeis el tiempo pues no contesteis, y ya esta.
>


Hola Pepe,

dos preguntas rápidas para decidir si estás siendo obtuso por accidente
(en
cuyo caso podemos arreglarlo) o por inclinación natural:


a) ¿Has leido estos correos? Si es así ¿lo has entendido? Si es así ¿por
qué
no has contestado?

http://lists.simplelogica.net/pipermail/ror-es/200...
http://lists.simplelogica.net/pipermail/ror-es/200...

b) ¿Has leido este correo mío? ¿Entiendes lo que te pido? ¿O has
decidido
que no te da la gana dar las gracias?

http://lists.simplelogica.net/pipermail/ror-es/200...


Sólo te llevará unos segundos contestar y ayudarás a mantener saludable
la
lista. ¡Muchas gracias! o como dirían en el foro francés ¡Merci
beaucoup!
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2008-10-08 15:42
(Received via mailing list)
Mira, no deberia de responder, porque esto no es más que ruido para la
lista. Pero lo voy a hacer porque me parece que has adoptado una
posición
bastante prepotente. Una pregunta. ¿si era una pregunata simple? por que
no
lo has buscado en google tu sólito? Lo que yo siempre he oido en esta
lista
es que primero se trata de solucionar por uno mismo y sino sale pues
vienes.


A titulo personal puedo reconocer que yo solo he hablado en este hilo
para
meterte caña. Y eso no ha sido ni esta siendo correcto por mi parte. A
si
que ya no voy a intervenir más.
Pero tu deberias reconocer que:
-Lo que preguntas es básico (muy basico si has leido algo de ruby. cosa
que
deberias).
-que se te ha contestado bien lo que preguntas. Hasta te han dado una
opcion
mejor para hacer lo que tu quieres
-Y que tu tambien estás siendo bastante borde al no reconocer ningun
fallo
por tu parte ni dar las gracias por las contestaciones que se han
aportado
(esta no claro, las que hablan de rails)

En fin, me despido
Sólo espero que recapacites. Y sino ya sabes, como tu mismo dices hay
mas
listas y si encima te defiendes en otro idioma, mejor para ti.

El 8 de octubre de 2008 15:12, Pepe Sanchez <
ruby-forum-incoming@andreas-s.net> escribió:
4287232616a1dde31cd2dab154acad70?d=identicon&s=25 Pepe Sanchez (jsn1)
on 2008-10-08 17:07
Mirad que respuesta tan chachi piruli me han dado en el foro en ingles
:-)

http://www.ruby-forum.com/topic/167609#new
1f2eadfb41362800ebc2cf211b91d0f7?d=identicon&s=25 javier ramirez (Guest)
on 2008-10-08 17:30
(Received via mailing list)
Pepe Sanchez wrote:
> Mirad que respuesta tan chachi piruli me han dado en el foro en ingles
> :-)
>
¿ahora vas a enlazarnos todos los idiomas del mundo en los que te han
respondido? lo digo más que nada porque justo acabo de terminar de
hacerme una rake para importar la lista iso-639-1 de idiomas a mi
aplicación y hay nada menos que 185 (sin incluir interlingua)

yo, como usuario de esta lista, reconozco que las listas en cualquier
otro idioma son mejores, menos susceptibles y mucho más amigables que
este antro de víboras que es ror-es

también reconozco que el mail de sergio gil le daba mil vueltas a la
explicación de porqué la clase va en un sitio o en otro.. pero si todo
lo que te interesa es poner la clase donde funcione sin importarte
porqué funciona, tienes razón, la respuesta de una línea que te daban
era perfecta.

saludos (pero los justos, no me gustaría ser más simpático que en
francia :p )


--
javier ramírez

..i do ruby on rails development in madrid, spain, at
http://www.aspgems.com
..you can find out more about me on http://formatinternet.wordpress.com
and http://workingwithrails.com/person/5987-javier-ramirez
5c15703984caa012845b3cea129da936?d=identicon&s=25 Manuel González Noriega (Guest)
on 2008-10-08 17:31
(Received via mailing list)
2008/10/8 Pepe Sanchez <ruby-forum-incoming@andreas-s.net>

> Mirad que respuesta tan chachi piruli me han dado en el foro en ingles
> :-)
>
> http://www.ruby-forum.com/topic/167609#new
>


Ah, te han explicado lo mismo que aquí, pero *mucho peor*.

Y estás más feliz, pese a todo.

La psique humana es curiosísima.

En fin, hilo cerrado.
2936ff433c99bd3dc0d9e6a29f3ba163?d=identicon&s=25 Omar Jimenez (Guest)
on 2008-10-08 17:32
(Received via mailing list)
Es bueno que alguien se preocupe por que la lista siga sana, pero que
curioso que muchas vecescuando quieren poner orden terminan haciendo una
cadena de mails de mas de 15 con puras alegatas inecesarias
si preguntas y no te responden lo que quieres pues ya es todo, no hay
necesidad de estarse peleando.
como puedes ver varios si te contestaron tu pregunta, no pasa nada aqui
todos tranquilos solamente se trata
de dejar sana la lista. suerte!

El 8 de octubre de 2008 10:07, Pepe Sanchez <
ruby-forum-incoming@andreas-s.net> escribió:
F625b891618be8ec32547a07b3192bb0?d=identicon&s=25 Francesc Esplugas (fesplugas)
on 2008-10-08 17:32
(Received via mailing list)
Que guai ha respondido Pratik que es core comitter de Rails y un gran
programador.

A mi me has tocado lo que no suena, así que aunque el moderador me
eche de aquí por generar mas ruido voy a decir un par de cosas.

1. Te ha respondido gente que quizás no te ha dado una solución, te
ha dado unas pistas para solucinar este y otros problemas. Es como lo
de los niños que se mueren de sed en Africa, no les llevamos botellas
de litro y medio de agua, sino que les ayudamos y les enseñamos a
construir una fuente de agua para que nunca les falte. Que desde mi
opinión es mucho mas educativo.

2. Mola que Pratik, Phillipe o Gerard contesten tus preguntas, pero
aquí hay gente que también lo ha hecho y no has dado ni gracias. Eso
es muy, muy, pero que muy feo, y creo que tendrás que hacer algo bueno
para arreglar el mal karma que has generado. En esta lista hay gente
igual de competente para responder a tus preguntas, lo único que piden
es que la gente no tenga tanto morro y eso consiste en investigar un
poco antes de preguntar.

On 08/10/2008, at 17:07, Pepe Sanchez <ruby-forum-incoming@andreas-
6f952bee7570a3db2ecba5b06c0062b3?d=identicon&s=25 Fernando Guillen (Guest)
on 2008-10-08 17:36
(Received via mailing list)
2008/10/8 Omar Jimenez <omar.omarseb@gmail.com>:
> Es bueno que alguien se preocupe por que la lista siga sana, pero que
> curioso que muchas veces
> cuando quieren poner orden terminan haciendo una cadena de mails de mas de
> 15 con puras alegatas inecesarias

+1 :)
7223c62b7310e164eb79c740188abbda?d=identicon&s=25 Xavier Noria (fxn)
on 2008-10-08 17:42
(Received via mailing list)
Hay que tener en cuenta una cosa: La respuesta a este post tuyo esta
condicionada por la otra pregunta: como hago un form de contacto que
envie un mail.

Puestas las dos preguntas juntas la respuesta adecuada es que debes
leer un poco mas, porque ambas preguntas evidencian que no conoces lo
mas minimo. No es algo que debas tomarte personalmente, no se esta
juzgando, simplemente es evidente que necesitas leer un poco mas y que
responder esto puntualmente es una perdida de tiempo para todos, tu
incluido.

En esta lista por lo demas se resuelven todo tipo de dudas de todos
los tipos de niveles, y siempre desde el respeto.
0f727db8f255bf1e8665f5cd8ebe9f8c?d=identicon&s=25 Adrián Mugnolo (Guest)
on 2008-10-08 18:12
(Received via mailing list)
On Oct 8, 2008, at 12:07 PM, Pepe Sanchez wrote:

> Mirad que respuesta tan chachi piruli me han dado en el foro en ingles
> :-)
>
> http://www.ruby-forum.com/topic/167609#new

Pratik es buena gente y muy amable.

Lo mismo, tu pregunta en inglés ya estaba mejor presentada que el
"combo" que tiraste aquí (creo que habías dicho "control" por
controlador; cosas así).  Y, con la traducción generalmente se pierde
la sutileza -- incluso la de quien no ha hecho antes su tarea. ;-)

Saludos
39086eb3d9a1437276d07c08ea0c3821?d=identicon&s=25 Guillermo (Guest)
on 2008-10-08 18:24
(Received via mailing list)
Perdón por ser soez.

Además, el mismo se ha dado la solución, que se vaya a la lista en
frances o
en inglés. Al fin y al cavo demuestra que le interesa más comprobar la
calidad de una lista que resolver una duda de 1º de rails.

Si el quiere respuestas rápidas y concretas que pague, coño ! Que este
no es
el servicio técnico oficial de ruby y rails en Español.

En esta lista se está para aprender. Se le enseña, no quiere. Pues adiós
muy
buenas, que esto no es la enseñanza pública.

Gana el y ganamos nosotros. Menos tiempo que perder.
Fc3f12c165eaeac4999bc274215fb582?d=identicon&s=25 Roberto m. Oliva (roliva)
on 2008-10-08 19:07
(Received via mailing list)
Si sirve de algo... espero que estas cosas no menoscaben el buen hacer
de la gente que ayuda en esta lista.
Por alguien que os pone en duda yo os animo a que sigais. Gracias por
vuestra ayuda!

Un saludo
Roberto M. Oliva
5c15703984caa012845b3cea129da936?d=identicon&s=25 Manuel González Noriega (Guest)
on 2008-10-08 19:17
(Received via mailing list)
2008/10/8 Roberto M. Oliva <roliva@idecnet.com>

>
> Si sirve de algo... espero que estas cosas no menoscaben el buen hacer
> de la gente que ayuda en esta lista.
> Por alguien que os pone en duda yo os animo a que sigais. Gracias por
> vuestra ayuda!
>
>
Dudo mucho que esto afecte, ha sido una forma divertida de pasar un
miércoles.

¡Hilo cerrado! :)
4287232616a1dde31cd2dab154acad70?d=identicon&s=25 Pepe Sanchez (jsn1)
on 2008-10-09 15:29
Oye que sensibles estais en este foro!!!  Estais a la defensiva!!!
6f952bee7570a3db2ecba5b06c0062b3?d=identicon&s=25 Fernando Guillen (Guest)
on 2008-10-09 15:34
(Received via mailing list)
2008/10/9 Pepe Sanchez <ruby-forum-incoming@andreas-s.net>:
> Oye que sensibles estais en este foro!!!  Estais a la defensiva!!!

Tranquilo.. ya ha pasado, te puedo asegurar que no es nada personal
contigo.

Saludos
f.
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2008-10-09 15:45
(Received via mailing list)
A mi si que me tocaste ayer algo personal y que cuelga :-). Pero que
quede
claro esto lo digo solo en mi nombre. Basicamente lo que me supo malo
fue
que:
-No dieses las gracias por las soluciones que te dieron.
-No reconocer que puede ser que no tuvieras toda la razón.

Y te contesto y se que estoy haciendo mal ya que manuel cerro el hilo
ayer
y encima yo dije que no iba a volver a participar. Pero es que la gente
con
tanta soberbia,que se esta peleando con 10 personas (+o-) en el hilo y
no se
baja del burro me pone nervioso. Hay que ser mas humilde en esta vida y
si
el administrador de esta lista (o el revisor del tren, o tu jefe, o tu
maestro,o...) te dicen como funcionan las cosas ahi, hacerle caso e
intentar
hacerlo mejor la proxima vez.

Esto es lo que pienso yo.

2008/10/9 Fernando Guillen <fguillen.mail@gmail.com>
This topic is locked and can not be replied to.