Como añadir una clase a RoR


#1

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


#2

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 :-).


#3

2008/10/7 Xavier N. removed_email_address@domain.invalid:

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 P.ming Language” [1] o
“Programming Ruby” [2] y Agile Web D. 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-development-with-rails


#4

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 D. 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


#5

2008/10/7 Pepe S. removed_email_address@domain.invalid

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


#6

Yo por ejemplo meto las clases en lib/.

On 08/10/2008, at 5:00, Pepe S. <ruby-forum-incoming@andreas-


#7

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!!!


#8

2008/10/8 Pepe S. removed_email_address@domain.invalid:

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 D. 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 > removed_email_address@domain.invalid
blog > http://www.lacoctelera.com/porras
now > http://twitter.com/porras


#9

2008/10/8 Pepe S. removed_email_address@domain.invalid

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


#10

2008/10/8 Pepe S. removed_email_address@domain.invalid

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 N.
  • Francesc E.
  • Adrián Mugnolo
  • Silvio Q.
  • 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.


#11

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.


#12

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 removed_email_address@domain.invalid


#13

2008/10/8 Pepe S. removed_email_address@domain.invalid:

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 > removed_email_address@domain.invalid
blog > http://www.lacoctelera.com/porras
now > http://twitter.com/porras


#14

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


#15

2008/10/8 Pepe S. removed_email_address@domain.invalid

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/2008-October/018036.html
http://lists.simplelogica.net/pipermail/ror-es/2008-October/018058.html

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/2008-October/018062.html

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!


#16

Mirad que respuesta tan chachi piruli me han dado en el foro en ingles
:slight_smile:

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


#17

Pepe S. wrote:

Mirad que respuesta tan chachi piruli me han dado en el foro en ingles
:slight_smile:

¿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 :stuck_out_tongue: )


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


#18

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 S. <
removed_email_address@domain.invalid> escribió:


#19

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 S. <
removed_email_address@domain.invalid> escribió:


#20

2008/10/8 Pepe S. removed_email_address@domain.invalid

Mirad que respuesta tan chachi piruli me han dado en el foro en ingles
:slight_smile:

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.