2012-07-30 37 views
5

Tôi đang sử dụng Rails và jquery, và tôi cần một nội dung động với ajax.nội dung động với ajax (ruby trên đường ray)

Nhưng tôi không biết làm thế nào để có được ID người dùng hiện

Ví dụ url là www.mywebsite.com/users/

Trong file javascript của tôi, tôi cần ID người dùng (20)

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

     }, "json"); 

Cảm ơn bạn đã giúp đỡ.


Có cách nào khác để làm điều này không?

Trả lời

4

Bạn có thể gán các đường ray giá trị biến cho một biến javascript trong tập tin xem bạn như

"<% = javascript_tag "var userId = #{@current_user.id};" %>"

và truy cập biến bên trong tệp js ở bất cứ đâu bạn muốn.

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

    }, "json"); 

Nên thực hiện thủ thuật.

Bao gồm đoạn mã vào tệp .erb hoặc tạo phần .js.erb với điều này.

+0

Tôi không nghĩ rằng điều này sẽ hoạt động trên một tệp .js. – MurifoX

+0

True, thêm thông tin trong câu trả lời của tôi –

+0

Tôi đã thử nó, Nó không hoạt động :( – user1560922

5

Nói chung tôi đặt một lĩnh vực hidden với id đâu đó trong trang, nơi tôi có thể dễ dàng tiếp cận với $("#user_id") vào file javascript, sau đó yêu cầu sẽ là một cái gì đó như thế này:

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

Hãy thử <% = escape_javascript (params [: id])%> Tôi không hoàn toàn chắc chắn nếu escape_javascript là cần thiết hoặc sẽ giúp đỡ.

1

Rất nhiều lựa chọn:

  1. Nếu bạn có một đối tượng hiện tại người dùng với id (Note: này phải nằm trong một tệp có đuôi .js.erb):

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

  2. Nếu bạn không muốn sử dụng tệp .js.erb nhưng vẫn cần giá trị được đặt ở đâu đó trên trang, sau đó đặt thuộc tính dữ liệu hoặc đầu vào bị ẩn với id v alue.

  3. Nếu bạn có giá trị id trong url (như trong url hiện tại bạn đang ở trên trông giống như www.mywebsite.com/users/20 và bạn muốn gửi request GET để sử dụng 20 như giá trị), bạn có thể sử dụng document.url hoặc window.location.href và một số chuỗi thao tác để lấy id.

Các vấn đề liên quan