Ruby on rails 定义一个通用方法,如当前用户rails

Ruby on rails 定义一个通用方法,如当前用户rails,ruby-on-rails,Ruby On Rails,我想创建一个通用方法,如DeVIDE提供的current_user方法,该方法可用于视图和控制器。就我而言,我想知道目前的公司 我的代码: class ApplicationController < ActionController::Base before_action :set_company protected def set_company @current_company =|| nil if current_user.admin? &&

我想创建一个通用方法,如DeVIDE提供的
current_user
方法,该方法可用于视图和控制器。就我而言,我想知道目前的公司

我的代码:

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
class ApplicationController
添加helper\u方法属性, 并公开该方法

helper_method :set_company

这将使它在应用程序的每个视图中都可用

添加helper\u method属性, 并公开该方法

helper_method :set_company

这将使它在应用程序的每个视图中都可用

您所拥有的几乎可以做到这一点。。。只需添加方法本身,并使其成为辅助方法,以便在视图中可用

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
class ApplicationController
你所拥有的几乎可以做到。。。只需添加方法本身,并使其成为辅助方法,以便在视图中可用

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
class ApplicationController