Tôi đã xem qua phương pháp sinatra và tôi đang bối rối về cách hoạt động của nó.Sinatra :: Base.condition thực sự làm gì?
Tôi có một đoạn mã:
def auth user
condition do
redirect '/login' unless user_logged_in?
end
end
nào kiểm tra xem nếu người dùng được đăng nhập cho các tuyến đường nhất định, một con đường dụ:
get '/', :auth => :user do
erb :index
end
Phương pháp user_logged_in?
được định nghĩa trong một helper trong thư mục lib của dự án:
def user_logged_in?
if session[:user]
@user = session[:user]
return @user
end
return nil
end
Vì vậy, câu hỏi là: Khối condition
biết nội dung của session[:user]
chứa khi nào, tại tuyến đường get '/'
, session[:user]
chưa được đặt?
Phương thức condition
được xác định trong trang GitHub sau: sinatra base condition method Cảm ơn.
cảm ơn bạn rất nhiều vì đã giải thích cẩn thận. Kỹ năng đọc Ruby của tôi hoàn toàn bối rối khi tôi nhìn vào phương pháp 'điều kiện'. Mặc dù đọc qua các mã vẫn cảm thấy khá đau đớn bạn đã cho phép tôi hiểu _what_ đang xảy ra. Chúc mừng. –