Saya baru-baru ini melihat-lihat ke Rails dan memperhatikan bahwa ada banyak referensi ke current_user
. Apakah ini hanya datang dari Devise? dan apakah saya harus mendefinisikannya sendiri secara manual meskipun saya menggunakan Rancangan? Apakah ada prasyarat untuk menggunakan current_user
(seperti keberadaan sesi, pengguna, dll)?
ruby-on-rails
kentang besar
sumber
sumber
session
dibangun ke dalam Rails. Secara default, ini menggunakan cookie untuk mempertahankan status klien di antara permintaan. Lihat guide.rubyonrails.org/security.html#sessions untuk info selengkapnya.return unless session[:user_id]
seperti yang ditunjukkan dalam jawaban Zach - tanpa itu, setiapif current_user
cek saat keluar akan memicu kueri database lain.Ya,
current_user
gunakansession
. Anda dapat melakukan sesuatu yang serupa di pengontrol aplikasi Anda jika Anda ingin menggulung otentikasi Anda sendiri:def current_user return unless session[:user_id] @current_user ||= User.find(session[:user_id]) end
sumber
session
adalah semacam sukaparams
, kecuali itu tetap ada untuk beberapa permintaan. Anda dapat menggunakannya untuk menyimpan segala jenis parameter tetap yang unik untuk setiap pengguna Anda (hingga sesi mereka berakhir atau mereka keluar). Anda dapat membaca lebih lanjut di sini: ActionController: Accessing the Session