次のモデル/Admin.rb クラスを抽出して lib/UserApi クラスに変換したいと考えています。私は lib クラスを作成し、コントローラーからそれらを呼び出すことができることに慣れていません。アドバイスをいただければ幸いです。
class Admin
attr_accessor :id
attr_accessor :firstname
attr_accessor :lastname
attr_accessor :usergroups
def initialize json_attrs = {}
    @usergroups = []
    unless json_attrs.blank?
        @id = json_attrs["id"]
        @fname = json_attrs["fname"]
        @lname = json_attrs["lname"]
        @groups = json_attrs["groups"]
        @authenticated = true
    end
    if json_attrs.blank?
        @firstname = "blank"
    end
end
def is_authenticated?
    @authenticated ||= false
end
def in_groups? group_names
    return !(@usergroups & group_names).empty? if group_names.kind_of?(Array)
    @usergroups.include?(group_names)
end
def authenticate username, password
    options={:basic_auth => {:username => CONFIG[:API_CLIENT_NAME], 
                            :password => CONFIG[:API_CLIENT_PASSWORD]}}
    api_response = HTTParty.get("#{CONFIG[:API_HOST]}auth/oauth2?username=#{username}&password=#{password}", options)
    raise "API at #{CONFIG[:API_HOST]} is not responding" if api_response.code == 500 || api_response.code == 404
    if api_response.parsed_response.has_key? "error"
        return false
    else
        initialize(api_response.parsed_response["user"].select {|k,v| ["id", "fname", "lname", "groups"].include?(k) })
        @authenticated = true
        return true
    end
end
def full_name
    "#{@name} #{@name}"
end
終わり
これは、私が現在 auth_controller で使用しているものです」
class Admin::AuthController < Admin::BaseController
def auth
    admin_user = Admin.new
    auth_result = admin_user.authenticate(params[:username], params[:password])
end