Forum: Rails-ES Como instanciar una clase ruby en el controlador?

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.
Javier E. (Guest)
on 2009-02-02 00:40
 Hola, estoy desarrollando una aplicación Ruby, pero me he encontrado
con un problema, quiero instanciar una clase de Ruby normal sin que esta
herede de ActiveRecord::Base, en principio podría intentar meter la
funcionalidad dentro del controlador, pero son 500 líneas o más que lo
único que harían es ensuciar el controlador y este no quedaría muy
limpio.

 Veo lógico que esta clase no este bajo el directorio models, ya que no
forma parte del modelo, mi primer instinto ha sido meter la clase en
model, y aunque la encontraba no podía llamar a los métodos de la clase
que he creado. ¿Donde debería de meterlo? ¿Y como puedo luego crear una
instancia de la clase?

 Gracias!
Guillermo Álvarez Fernández (Guest)
on 2009-02-02 01:04
(Received via mailing list)
El 01/02/2009, a las 23:40, Javier E. escribió:
> Veo lógico que esta clase no este bajo el directorio models, ya que no
> forma parte del modelo, mi primer instinto ha sido meter la clase en
> model, y aunque la encontraba no podía llamar a los métodos de la
> clase
> que he creado. ¿Donde debería de meterlo? ¿Y como puedo luego crear
> una
> instancia de la clase?
>
> Gracias!


Normalmente este código se mete en lib.
Si este código lo usas en varios projectos, te recomiendo vendor/plugin.
Si lo usas en varios sistemas, en vendor gems y haces una gema.

si lo que quieres añadir son funciones debes de hacer un módulo.

module Feature
def my_func
end
end

class PersonController < ApplicationController
include MyFeature
..
end


Si estas seguro de hacer una clase.

   class A
   end

y en el controllador
   A.new



---
Guillermo Álvarez Fernández
removed_email_address@domain.invalid
http://cientifico.net
Javier E. (Guest)
on 2009-02-02 10:24
Guillermo Álvarez Fernández wrote:
> Normalmente este código se mete en lib.
> Si este código lo usas en varios projectos, te recomiendo vendor/plugin.
> Si lo usas en varios sistemas, en vendor gems y haces una gema.
>
> si lo que quieres añadir son funciones debes de hacer un módulo.
>
> module Feature
> def my_func
> end
> end
>
> class PersonController < ApplicationController
> include MyFeature
> ..
> end
>
>
> Si estas seguro de hacer una clase.
>
>    class A
>    end
>
> y en el controllador
>    A.new
>
 Gracias, Guillermo. Si creo que la idea es que sea una clase ya que
esta va a contener también variables y no sólo métodos.

 Esta noche lo pruebo y a ver si lo saco en claro.

 Gracias de nuevo.
This topic is locked and can not be replied to.