2013-02-24 1 views
-1

У меня есть piece of code in a model that I need but that breaks RailsAdmin:вызовов в модели, только если пользователь администратор

class Item < ActiveRecord::Base 
    serialize :properties, ActiveRecord::Coders::Hstore 
end 

Так как я не нашел решение, чтобы решить эту проблему, я планирую только работает эта строка кода, когда пользователь не админ:

В контроллере, я мог бы сделать это по телефону:

unless current_user.role?("Admin") # CanCan is installed 

Как я могу реализовать что-то подобное в модели товара? Или есть лучший способ (у меня такое чувство есть)?

ответ

0

Посмотрите на cancan + rolify, вы можете использовать current_user.has_role? : Администратор

Редактировать

Разрабатывают дает метод current_user
Rolify дает вам метод has_role? :admin
Канкан дает вам такие методы, как can? :destroy, @project

Примечание на канкан: Для того, чтобы использовать можно и не методы, которые вы должны дефинировать способности класса

+0

Спасибо за ваш ответ. У меня есть cancan, но current_user недоступен в моей модели. Не уверен, хочу ли я установить ролик, поскольку у меня уже есть система RBAC. – migu

+0

current_user исходит из разработки, я предположил, что вы уже использовали devise, потому что вы указали этот метод. –

+0

current_user не обязательно исходит от тех, кто использует authlogic, например, также вручную реализует этот метод в ApplicationController за свой README. –

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

  • Нет связанных вопросов^_^