2010-07-06 2 views
0

(простите за мой английский;)Некоторые проблемы с канканом

Я начал использовать Канкан из rbates, это удивительный драгоценный камень, но у меня есть некоторые проблемы: У меня есть Scrap модель и есть логическое поле: опубликовано (поэтому он означает опубликованный/не опубликованный (проект)).

У меня есть это правило в моем ability.rb:

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

Таким образом, этот объект не может редактировать/обновлять/удалено не-автор. Я хочу сделать то же самое с моим действием «показать» (не авторские сценарии для чтения, действительно?). Каков истинный способ сделать это?

Thanx all! Андрей Огневского

ответ

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

: чтение средства: индекс и: шоу, так что пользователи не смогут зрения: индекс действие;) я пытался написать что-л так: может: читать,: все делают | object_class, object | object_class! = "Scrap" end can: index, Scrap can: show, Scrap do | scrap | scrap.published || scrap.user == user end , но я думаю, что здесь слишком много кода для одного небольшого действия;/Я считаю, что для этого есть более простой способ. –

+0

Вы пробовали заменить: читать: show? – robertokl

+0

уверен, что он становится тем же, что и в моем комментарии (здесь нет разрывов строк для комментариев ...), но я думаю, что слишком много текста для одного небольшого действия; ( –

Смежные вопросы