Ячейки с декларативной авторизацией - PullRequest
0 голосов
/ 28 июня 2011

с использованием ячеек драгоценных камней и Declarative_authorization (вместе с Devise), и я пытаюсь выяснить, как включить allow_to?в шаблоны ячеек.Пока что я добавил это в свои ячейки Cell (устройство Devise работает для его помощников):

class SidebarCell < Cell::Rails
    include Devise::Controllers::Helpers
    helper_method :current_user
    include Authorization::AuthorizationHelper
    helper_method :permitted_to?



  def display(args)
    @object = args[:object]
    @notice = args[:notice]
    @alert = args[:alert]
    render
  end

end

Но это бомбардировка тем фактом, что вспомогательный модуль Declarative_auth использует следующий код:

def permitted_to? (privilege, object_or_sym = nil, options = {}, &block)
      controller.permitted_to?(privilege, object_or_sym, options, &block)
    end

и, очевидно, это дает

undefined local variable or method `controller' for ...

ОБНОВЛЕНИЕ:

Подумав еще немного, я не уверен, что это когда-нибудь сработает с Cells.Declarative_auth нуждается в контроллере, чтобы основывать его правила, но Cells не имеет ничего общего с этим контроллером.Мне кажется, что они несовместимы, если я не передам ссылку на контроллер в Cells?Начинаю думать, что Клетки - не тот путь.

1 Ответ

1 голос
/ 29 декабря 2011

Это будет работать, если вы добавите

helper_method :controller

, который просто делегирует:

def controller
  parent_controller
end

Извините за это неудобство, но вся вспомогательная архитектура в Rails отстой: http://nicksda.apotomo.de/2011/10/rails-misapprehensions-helpers-are-shit/

...