Определите метод generi c, например, рельсы current_user - PullRequest
0 голосов
/ 22 марта 2020

Я хотел бы создать обобщенный метод c, такой как метод current_user, предоставляемый Devise, который можно использовать в представлениях и контроллерах. В моем случае я хочу узнать текущую компанию.

Мой код:

class ApplicationController < ActionController::Base

before_action :set_company

protected

  def set_company
    @current_company =|| nil
    if current_user.admin? && session[:company_id].present?
      @current_company =|| Company.find(session[:company_id])
    else
      @current_company =|| current_user.company
    end
  end

end

Ответы [ 2 ]

1 голос
/ 22 марта 2020

То, что у вас есть, почти делает это ... просто добавьте сам метод и сделайте его вспомогательным, чтобы он был доступен в представлениях.

class ApplicationController < ActionController::Base

  helper_method :current_company

  before_action :set_company

  def current_company
    @current_company
  end

protected

  def set_company
    @current_company =|| nil
    if current_user.admin? && session[:company_id].present?
      @current_company =|| Company.find(session[:company_id])
    else
      @current_company =|| current_user.company
    end
  end

end
1 голос
/ 22 марта 2020

добавьте свойство helper_method и сделайте метод publi c

helper_method :set_company

, что сделает его доступным в каждом представлении вашего приложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...