Проблема в следующем:
Делаю чат. В чате сообщение может оставлять только авторизованный пользователь.
Контроллер, который обрабатывает websocket запросы наследуется от WebsocketRails::BaseController
class MessagesController < WebsocketRails::BaseController
def create
abort current_user
end
end
Проблема в том, что метод current_user отсутствует, а знать от кого сообщение - надо.
Подключаю хелпер от ApplicationController, в котором определен этот метод (для аутентификации использую Authlogic)
Возникает другая ошибка - "You must activate the Authlogic::Session::Base.controller with a controller object before creating objects" - вываливает Authlogic.
Ок.
Пишу в контроллере MessagesController следующее:
class MessagesController < WebsocketRails::BaseController
include ApplicationHelper
before_action do
Authlogic::Session::Base.controller = Authlogic::ControllerAdapters::RailsAdapter.new(self)
end
def create
abort current_user
end
end
Всё хорошо, но обнаруживается, что в контроллере Messages нет метода cookies (NoMethodError: undefined method `cookies'). И правильно, ведь он наследуется не от ActionController::Base а от WebsocketRails::BaseController.
Вопрос: кто нибудь использовал websocket-rails + authlogic? Если да, то скиньте ссылку на Github, где можно посмотреть код.