dışındaki ad alanında, bazı genel form işlevleri için kendi motorumu oluşturduğum Rails uygulamasında izinler için CanCan kullanıyorum. Sistemimdeki izinleri kilitlemek istiyorum, böylece kullanıcılar motor kontrol cihazlarının eylemlerine serbestçe erişemezler. Bu kontrolörler, çoğunlukla, 7 REST eylemlerinden faydalanıyorlar, bu yüzden her bir kontrol ünitesinin üst kısmında CanCan'ın load_and_authorize_resource
'u kullanmak istiyorum. Bu gibi kodumu yazarkenCanCan: load_and_authorize_resource MainApp
Ancak:
module MyEngine
class FormController < ApplicationController
load_and_authorize_resource
...
end
end
bu hatayı alıyorum:
Benim tahminimload_and_authorize_resource
otomatik yükleyici, benim MainApp ad bağlıdır ki
uninitialized constant Form
ve farklı bir ad alanında çağıracağımı farketmez ve MyEngine::Form.find(params[:id])
yerine Form.find(params[:id])
gibi bir çağrı yapar.
Bu durumda, bunu nasıl düzeltebilirim? Bu büyük bir anlaşma değil çünkü authorize!
hala düzgün çalışıyor, bu yüzden her eylemde yetkilendirmeyi ayrı ayrı tanımlayabilirim, ancak load_and_authorize_resource
yöntemini kullanabildiysem çok daha temiz hissederdim.
[CanCan kullanarak Adlandırılmış ve İç içe geçmiş Denetleyicileri Yetkilendirmek] olası bir kopyası (http://stackoverflow.com/questions/12334367/authorizing-namespaced-and-nested-controllers-using-cancan) –