2010-07-06 6 views
0

(désolé pour mon anglais;)Quelques problèmes avec CanCan

j'ai commencé à utiliser CanCan de rbates, c'est petit bijou génial, mais j'ai quelques problèmes: J'ai modèle Scrap et il y a champ booléen: publié (donc, cela signifie publié/non publié (projet)).

J'ai cette règle dans mon ability.rb:

can :create, [Scrap] 
can [:update, :destroy], [Scrap] do |object| 
    object.try(:user) == user 
end 

Ainsi, cet objet ne peut pas être modifié/mise à jour/supprimé par les non-auteur. Je veux faire la même chose avec mon action "show" (non-auteur ne peut pas lire les brouillons, vraiment?;) Quelle est la véritable façon de faire cela?

Merci à tous! Andrey Ognevsky

Répondre

2
can :show, Scrap do |scrap| 
    scrap.published || scrap.user == user 
end 
+0

: un moyen de lecture: index et: spectacle, afin que les utilisateurs ne seront pas en mesure d'afficher: action index;) i essayé d'écrire smth comme ceci: peut: lire,: tout faire | object_class, objet | classe_objet! = "Scrap" fin peut: index, Scrap peut: spectacle, Scrap do | scrap | scrap.publié || scrap.user == user fin mais je pense qu'il y a trop de code pour une petite action,/je crois qu'il y a une façon plus simple de faire ça. –

+0

avez-vous essayé de remplacer: lire avec: show? – robertokl

+0

bien sûr, il devient le même que j'ai écrit dans mon commentaire (ici pas de sauts de ligne pour les commentaires ...), mais je pense que c'est trop de texte pour une petite action ( –

Questions connexes