2014-02-10 1 views
5

Ich habe eine klassische Posts-gehört-zu-Benutzer-Zuordnung. Ich möchte auf alle Aktionen wie #index ein default_scope anwenden, so dass es nur meine Posts auflistet. Aber ich möchte die Möglichkeit, Beiträge von jedem zu sehen, wenn ich auf die #show Aktion gehe, wenn Sie einen Link dazu folgen.Wie kann ich einen Bereich nur für einige Aktionen auf ActiveAdmin hinzufügen

Wie kann ich verhindern, dass das default_scope auf diese Aktion angewendet wird?

class Post < ActiveRecord::Base 
    belongs_to :user 
end 

ActiveAdmin.register CertificationModel do 
    controller do 
    def scoped_collection 
     current_user.posts 
    end 
    end 
end 
+1

By the way, können Sie das eingebaute [ 'scope_to'] verwenden (https://github.com/gregbell/active_admin/blob/60d8be97ec2c29a871f55bd28e00ca9ec9257028/docs/2-resource-customization.md#scoping -the-queries), um dasselbe zu erreichen, was Sie gerade mit 'scoped_collection' machen – seanlinsley

Antwort

5

Die Lösung war einfach: scoped_collection zu halten und #show Aktion neu zu definieren.

ActiveAdmin.register Post do 
    controller do 
    def show 
     @post = Post.find params[:id] 
    end 

    def scoped_collection 
     current_user.posts 
    end 
    end 
end 
Verwandte Themen