Llamar a un metodo automaticamente


#1

Hola,

saben si es posible el poder llamar a un método de un controlador o a
un rjs de forma automática al cargar una vista?

controlador

def saludo
“hola”
end

y en la vista al cargar devuelva el resultado de “saludo” o el
resultado de saludo.rjs sin necesidad de haber pulsado ni links, ni
botones.

Gracias por la ayuda.
Un saludo.


#2

Define saludo como un before_filter, y “hola” guardalo en una variable
de instancia que muestres siempre en la vista.

¿Te refieres a eso, no?


#3

Define saludo como un before_filter, y “hola” guardalo en una variable
de instancia que muestres siempre en la vista.

¿Te refieres a eso, no?

Gracias por la ayuda, les cuento

before_filter lo había probado pero me solucionaba solo el 50% ya que
el método
saludo tiene también asociado el fichero saludo.rjs que es el que no
consigo ejecutar de forma automatica.

el codigo es algo asi

#controlador
before_filter :saludo, :only => [ :index ]

def index
end

def saludo
@s = “Hola”
end

#RJS
page.visual_effect :highlight, ‘saludo’, :duration => 3

Alguna idea???
Muchas gracias por la ayuda

Un saludo


#4

Es decir, que quieres que te haga el efecto Hightlight cada vez que
cargas la página, ¿no?

Si es sólo eso, me temo que tendrás que recurrir al callback onload de
Javascript, asociarle una función y desde esa función llamar al
Effect.Highlight, que es una función de script.aculo.us accesible
desde otras funciones.

Piensa que RJS no es más que Javascript evaluado, así que todo lo que
puedes hacer con RJS lo puedes hacer a pelo con Javascript.

Espero que te sirva. Un saludo!


#5

así que todo lo que puedes hacer con RJS lo puedes hacer a pelo con
Javascript.

vaya, eso era justo lo que trataba de evitar, se me da muy mal el
javascript :frowning:

sabiendo que es como indicas abra que echarle valor al javascript,
por lo menos tendré la tarde entretenida.

Muchas gracias por la ayuda Fernando.
Un saludo.


#6

vaya, no se que decir, esto ultimo no era necesario, ya me habías
ayudado bastante
con las primeras respuestas.

Muchas gracias, muy agradecido.
Un saludo.

El 22/04/2007, a las 15:30, Fernando B.
escribió:

Puedes utilizar esta función para cargar eventos en el onload:


#7

Puedes utilizar esta función para cargar eventos en el onload:

function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != ‘function’) {
window.onload = func;
}
else {
window.onload = function() {
oldonload();
func();
}
}
}

luego defines tu
función:
function highlight() {

}

Y añades addLoadEvent(highlight); y ya lo tendrías.

Un saludo.


#8

Yo es que soy de la vieja escuela del Javascript. Prototype es para
flojos :smiley:


#9

No se si Blat no te lo ha dicho porque da algún problema (supongo que
no), pero en principio puedes hacer lo mismo
así:
app_behaviour = {
init: function() {
// el efecto que comentabas:
new Effect.Highlight…
// cualquier otra cosilla que quieras hacer cuando se cargue la página
}
}

Event.observe(window, ‘load’, app_behaviour.init);

Te ahorras el addLoadEvent y contaminas un poquito menos el espacio de
nombres, que en JavaScript es compartido.

Si además sacas ese código a un archivo javascript externo… golazo
por la escuadra.

Perdón por el offtopic

On 4/22/07, alarkspur removed_email_address@domain.invalid wrote:

  }

}

luego defines tu función:

function highlight() {

}


David A., el único desarrollador con una orden de alejamiento de
Jeffrey Zeldman
Simplelogica.net, ahora con un 33,3% más de intromisión en listas de correo

Cuando no hago otra cosa escribo en mildiez.net


#10

Yo es que soy de la vieja escuela del Javascript. Prototype
es para flojos :smiley:

Si Dan Steinman levantara la cabeza…


#11

Al final este es el trozo de código que me ha solucionado el tema.

<%= flash[:message] -%>

lo he puesto al final del body y así dependiendo de las variables del
método index del controlador me lo muestra al cargar la pagina.
me ha quedado un sistema de mensajes la mar de majo, parecido al
efecto de subir y bajar el volumen en el mac :slight_smile:

probare también lo que comentas David que parece que así quedara
mejor, ya que mi forma es aun un poco chapuzilla :stuck_out_tongue:

Un saludo.

El 23/04/2007, a las 10:07, David A.
escribió:

No se si Blat no te lo ha dicho porque da algún problema (supongo que