2012-03-06 26 views
6

Tôi có một ứng dụng mà tôi quản lý đăng ký/vào/ra với Rails thông qua Devise.Truy xuất đường ray/thiết lập current_user từ Backbone

Khi tôi đăng nhập, tôi được chuyển hướng đến trang tổng quan # Bảng điều khiển nơi bắt đầu của Backbone.

Tôi muốn lấy lại bằng cách nào đó current_user.id và current_user.token trong Backbone.

ý tưởng duy nhất của tôi là phải có này trong dashboard.html.haml tôi

:javascript 
    window.App.current_user.id = "#{current_user.id}" 
    window.App.current_user.token = "#{current_user.token}" 

Trả lời

7

(Chỉ cần xét rằng chỉ có thông tin nào cần được truy xuất ở phía khách hàng)

Đối với một thanh lịch hơn giải pháp bạn có thể tạo ra một mô hình xương sống UserSessionfetch nó từ máy chủ như mô hình xương sống bình thường.

window.App.UserSession = Backbone.Model.extend({ 
    urlRoot: "/session" 
}); 

Nếu không muốn thực hiện yêu cầu thêm này bạn có thể tải các mô hình một cách rõ ràng với các dữ liệu đã có sẵn trong thời gian mẫu vẽ:

window.App.current_user = 
    new window.App.UserSession({ 
    id: "#{current_user.id}", 
    token: "#{current_user.token}" 
    }); 
+0

Tôi chỉ muốn lưu ý rằng điều này sẽ không làm việc từ các mẫu js.erb do không có sẵn ở đó. Bạn có thể làm cho nó có sẵn thông qua một yêu cầu một nơi nào đó hoặc bạn có thể đặt này ở dưới cùng file application.html.erb sau khi xương sống được bao gồm. – WattsInABox

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