Forum: Rails-ES pasar nil a una accion

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.
Christian R. (Guest)
on 2009-02-24 17:57
hola lista, como estan...


pregunta: puedo pasarle nil a una accion? ya sea en un controllador o en
una clase del modelo?

ejemplo: si defino una accion en un controllador la cual resive 2
parametros, en algun momento puedo entregar nil a uno de esos
parametros?


class AlgunosController << AplicationController

 def metodo(A, B)

    if A
       Class.funcion(A,B)
    else
       Class.funcion(nil,B)
 end
end

la clase Class la funcion esta definida de la misma manera que
en el controlador, si resive los 2 parametros hace algo, y si resive 1
parametro se comporta distinto.

grax.
Raul M. (Guest)
on 2009-02-24 18:17
(Received via mailing list)
El día 24 de febrero de 2009 16:57, Christian R.
<removed_email_address@domain.invalid>
escribió:> pregunta: puedo pasarle nil a una accion? ya sea en un controllador o 
en
> una clase del modelo?
> ejemplo: si defino una accion en un controllador la cual resive 2
> parametros, en algun momento puedo entregar nil a uno de esos
> parametros?

Se suele llamar "acciones" a los métodos de los controladores a los
que se tiene acceso desde las rutas, y esos reciben los parámetros en
el objeto params. Supongo que te refieres a un método y no a una
"acción". Y sí, un método puede recibir nil.

> class AlgunosController << AplicationController

Deberías revisar la sintaxis ;)

>  def metodo(A, B)
De nuevo, deberías revisar la sintaxis: en ruby es importante la
distinción entre mayúsculas y minúsculas.

>    if A
>       Class.funcion(A,B)
>    else
>       Class.funcion(nil,B)
>  end
> end
>
> la clase Class la funcion esta definida de la misma manera que
> en el controlador, si resive los 2 parametros hace algo, y si resive 1
> parametro se comporta distinto.

Sin ver el ejemplo concreto, sólo avisarte que esto suele ser un "code
smell", un síntoma de que puede haber algún problema en la
organización del código.
Christian R. (Guest)
on 2009-02-24 18:24
ok, lo de accion y metodo no lo tenia claro, grax, en realidad no quiero
pasarle el nil a un metodo, sino que a una accion, me imaguino que se
puede de la misma manera que a un metodo, me podrias dejar claro eso
plz.

> Deber�as revisar la sintaxis ;)

si, escribi el ejemplo a la rapida para que me entendieran nomas, grax
:D


> Sin ver el ejemplo concreto, s�lo avisarte que esto suele ser un "code
> smell", un s�ntoma de que puede haber alg�n problema en la
> organizaci�n del c�digo.

en realidad todavia no tengo nada de codigo escrito, lo que pasa es que
estoy diseñando un sistema de coordinacion de proyectos para una empresa
de desarrollo de software, y por el momento estoy diseñando el software
utilizando RUP por lo que ahora estoy trabajando en los diagramas de
secuencia y los CU.


grax.
Raul M. (Guest)
on 2009-02-24 18:40
(Received via mailing list)
El día 24 de febrero de 2009 17:24, Christian R.
<removed_email_address@domain.invalid> escribió:
> ok, lo de accion y metodo no lo tenia claro, grax, en realidad no quiero
> pasarle el nil a un metodo, sino que a una accion, me imaguino que se
> puede de la misma manera que a un metodo, me podrias dejar claro eso
> plz.

Creo que tenemos conceptos distintos de lo que es una acción y un
método (mi versión la tienes en mi mail anterior). ¿Qué diferencias
ves entre una acción y un método?

>> Sin ver el ejemplo concreto, s�lo avisarte que esto suele ser un "code
>> smell", un s�ntoma de que puede haber alg�n problema en la
>> organizaci�n del c�digo.
>
> en realidad todavia no tengo nada de codigo escrito, lo que pasa es que
> estoy diseñando un sistema de coordinacion de proyectos para una empresa
> de desarrollo de software, y por el momento estoy diseñando el software
> utilizando RUP por lo que ahora estoy trabajando en los diagramas de
> secuencia y los CU.

A eso me refiero: estás diseñando el código de tu sistema,
planificando cómo van a coordinarse sus elementos. Si en tu diseño hay
una función que cuando recibe dos parámetros hace una cosa y cuando
recibe uno hace otra completamente distinta suele significar que hay
que revisar un poco el diseño de esa parte del sistema.
Jose vicente R. (Guest)
on 2009-02-24 19:13
Podrias evaluar en el metodo el valor de los parametros
recibidos. Por ejemplo si se trata de un buscador de texto puedes decir:

if A="" ....

que es equivalente a decir que A es nil, domo te digo depende del tipo
de parametros de entrada.

Un saludo
Raul M. (Guest)
on 2009-02-24 19:25
(Received via mailing list)
El día 24 de febrero de 2009 18:13, Jose vicente Ribera pellicer
<removed_email_address@domain.invalid>
escribió:> Podrias evaluar en el metodo el valor de los parametros
> recibidos. Por ejemplo si se trata de un buscador de texto puedes decir:
>
> if A="" ....
>
> que es equivalente a decir que A es nil, domo te digo depende del tipo
> de parametros de entrada.

No, esto NO ES ASÍ. Por favor no enviéis este tipo de errores a la lista:
1) en este ejemplo A es una constante, si va a usar una variable debe
ir en minúscula
2) estás asignando la cadena vacía a A, no comparando. Para comparar se usa
==
3) aunque estuvieras usando ==, tu ejemplo está mal: nil es una cosa y
la cadena vacía es otra:
~ $ irb
>> nil == ""
# => false

Repito: por favor no enviéis este tipo de afirmaciones y de código a
la lista sin comprobarlo antes.

Gracias.
Raul M. (Guest)
on 2009-02-24 19:25
(Received via mailing list)
El día 24 de febrero de 2009 18:13, Jose vicente Ribera pellicer
<removed_email_address@domain.invalid>
escribió:> Podrias evaluar en el metodo el valor de los parametros
> recibidos. Por ejemplo si se trata de un buscador de texto puedes decir:
>
> if A="" ....
>
> que es equivalente a decir que A es nil, domo te digo depende del tipo
> de parametros de entrada.

No, esto NO ES ASÍ. Por favor no enviéis este tipo de errores a la lista:
1) en este ejemplo A es una constante, si va a usar una variable debe
ir en minúscula
2) estás asignando la cadena vacía a A, no comparando. Para comparar se usa
==
3) aunque estuvieras usando ==, tu ejemplo está mal: nil es una cosa y
la cadena vacía es otra:
~ $ irb
>> nil == ""
# => false

Repito: por favor no enviéis este tipo de afirmaciones y de código a
la lista sin comprobarlo antes.

Gracias.
Emili P. (Guest)
on 2009-02-25 08:51
(Received via mailing list)
Me sumo a la petición de Raul: intentad no enviar errores flagrantes
como
este por favor, ya que pueden hacer confundir a la gente que está
aprendiendo. En este hilo hay muchos errores con cosas básicas, que ni
tan
si quiera son de Rails, sinó que son de base, de Ruby. Aprovecho pues
este
hilo para hacer hincapié en la importancia de aprender Ruby para no
cometer
errores como estos que nos os va a dejar avanzar mucho.
Un saludo.

2009/2/24 Raul M. <removed_email_address@domain.invalid>
This topic is locked and can not be replied to.