2012-07-30 19 views
5

Estoy usando Rails y jquery, y necesito un contenido dinámico con ajax.contenido dinámico con ajax (ruby on rails)

Pero no sé cómo obtener el ID de usuario actual

Por ejemplo, la URL es www.mywebsite.com/users/

En mi archivo javascript que necesito el ID de usuario (20)

$.get("https://stackoverflow.com/users/<%= **20** %>.json", function(data) 
     { 

     }, "json"); 

Gracias de antemano por cualquier ayuda.


¿Hay alguna otra manera de hacerlo?

Respuesta

4

Puede asignar los carriles valor de la variable a una variable de JavaScript en su archivo de vista como

"<% = javascript_tag "var = ID de usuario #{@current_user.id};" %>"

y acceda a la variable dentro del archivo js donde desee.

2
$.get("https://stackoverflow.com/users/<%= params[:id] %>.json", function(data) 
    { 

    }, "json"); 

Debería hacer el truco.

Incluya el fragmento en el archivo .erb o cree un .js.erb parcial con esto.

+0

No creo que esto funcione en un archivo .js. – MurifoX

+0

Es cierto, agregó más información en mi respuesta –

+0

Ya lo probé, no funciona :( – user1560922

5

Generalmente pongo un campo hidden con el id en algún lugar de la página, en la que pueden acceder fácilmente con $("#user_id") en el archivo JavaScript, entonces la petición sería algo como esto:

var id = $("#user_id").val(); 
$.get("https://stackoverflow.com/users/"+id+".json", function(data) { }, "json"); 
0

Trate <% = escape_javascript (params [: id])%> No estoy del todo seguro de si es necesario escapar_javascript o lo ayudará.

1

Un montón de opciones:

  1. Si usted tiene un objeto actual del usuario con el id (Nota: esto debe estar en un archivo que termina con .js.erb):

    $.get("https://stackoverflow.com/users/<%= @current_user.id %>.json", function(data){...}, "json");

  2. Si no desea utilizar un archivo .js.erb, pero aún necesita que el valor se establezca en algún lugar de la página, establezca un atributo de datos o entrada oculta con el id v Alue.

  3. Si tiene el valor de ID en la URL (como en la URL actual que usted está en la apariencia como www.mywebsite.com/users/20 y desea que la solicitud GET a utilizar 20 como el valor), se puede utilizar document.url o window.location.href y un poco de manipulación de cadenas para obtener la identificación.