وراثي _Resources و Cancan Conflict
-
25-09-2019 - |
سؤال
هناك صراع مع الوراثة وريان بيتس كامب.
لدي بعض وحدة التحكم البسيطة
class IssuesController < InheritedResources::Base
respond_to :html
load_and_authorize_resource
def tag
@issues = Issue.tagged_with(params[:tag]).recent.paginate(:page => params[:page])
end
protected
def collection
@issues = end_of_association_chain.recent.paginate(:page => params[:page], :per_page => Settings.per_page_defaults.issues)
end
end
والطريق
resources :issues do
collection do
get "tag/:tag" => "issues#tag", :as => "tags"
end
end
كل شيء يبدو صحيحًا ، ولكن عند محاولة الطلب http: // localhost: 8080/acments/tag/tag1فهمت
ActiveRecord::RecordNotFound in IssuesController#tag
Couldn't find Issue without an ID
بعد إزالة load_and_authorize_resource من وحدة التحكم - كل شيء يعمل بشكل جيد ، لكنني بحاجة إلى التحكم في الوصول.
أي فكرة عن كيفية حل هذه المشكلة؟
المحلول
استعمال load_and_authorize_resource :except => :tag
. لاحظ أن هذا لن ينطبق القواعد. إذا كنت بحاجة إلى تطبيق بعض الاستخدام authorize!
في حين أن.
لا تنتمي إلى StackOverflow