2011-01-31 6 views
5

Chỉ cần bắt đầu phát triển với tính năng xác thực ứng dụng của tôi, tuy nhiên gặp sự cố khi truy cập current_user từ một mô hình. Tôi không gặp vấn đề gì khi truy cập điều này từ bộ điều khiển.Làm cách nào để truy cập vào current_user từ mô hình

Đối với kịch bản của mình, tôi cần lấy id người dùng hiện tại để theo dõi ai đã chỉnh sửa bài đăng trên blog, mà tôi lưu id người dùng bằng bộ lọc before_save.

Đánh giá cao sự trợ giúp của bạn!

Cảm ơn

Trả lời

3

Bạn chỉ có thể chuyển nó xuống trong tham số.

class SomeModel 
    def my_nifty_method(user) 
    end 
end 

trong điều khiển:

class SomeModelsController < ApplicationController 
    def some_method 
    sm = SomeModel.new 
    sm.my_nifty_method(current_user) 
    end 
end 
-1

Bạn sẽ có thể làm điều này trong mô hình của bạn. 'c' ở đây là đối tượng mô hình và thiết lập thuộc tính user_id trước khi tạo hoặc lưu trong trường hợp của bạn.

before_create {|c| c.user_id = Authorization.current_user.id} 

Tôi có phần mới đối với RoR nên được cảnh báo.

-5

Tại sao bạn cố truy cập vào phương thức đó trong mô hình? Bạn có thể truy cập vào các thuộc tính ID qua self.id (trong mô hình)

+0

Tôi có thể hỏi lý do bỏ phiếu phủ định không? – eveevans

+1

'self.id' trả về id của cá thể hiện tại, không phải của' current_user' –

+0

có, và câu hỏi cho biết: ".. Tôi cần lấy id người dùng hiện tại .." – eveevans