Rails 3 вспомогательный метод, доступный в модели

Я обновляю приложение до Rails 3. У нас есть Application Controller, как показано ниже:

class ApplicationController < ActionController::Base
     helper_method :current_user

     def current_user
       @current_user ||= User.find(session[:user_id]) if session[:user_id]
     end

Поскольку мы определяем "helper_method", "current_user" доступен для всех представлений. Он доступен для контроллеров, потому что все они наследуются от класса ApplicationController.

Однако, когда мы были на 2.3.8, доступ к "current_user" был доступен через модель, но теперь это не так. Есть ли способ сделать это доступным для моделей?

Ответ 1

Я мог бы предложить перемещение current_user в помощник, например UserHelper, тогда вы можете включить его в свою модель с помощью include UserHelper.

Вы также должны будете include UserHelper в вашем ApplicationController, но helper :user будет включать в себя также как и обычные ваши представления.