모든 사용자 정보가 제 3 자 인증 서비스에 저장되어 있기 때문에 실제로 데이터가없는 데이터베이스 모델이 있습니다. 모델을 일반 API처럼 사용할 수 있기를 원합니다. 따라서로드시 API에서 모든 정보를 가져 와서 인스턴스 변수에 저장합니다.ActiveModel :: Model에서 before_action 유형 콜백을 사용하려면 어떻게해야합니까?
내 모델에 대해 before_action
콜백을 설정하려면 어떻게해야합니까? 이 일을 루비 방법이 있습니까?
class Auth0User < ApplicationRecord
before_action set_instance_variables
validates :auth0_id, presence: true,
uniqueness: true
def info(key = nil)
key.nil? ? @user : @user[key.to_s]
end
private
def set_instance_variables
@user ||= auth0_api.user auth0_id
end
def auth0_api
Auth0Client.new(
client_id: Rails.application.secrets.auth0_client_id,
token: Rails.application.secrets.auth0_management_jwt,
domain: Rails.application.secrets.auth0_domain,
api_version: 2
)
end
end
https://dockyard.com/blog/2013/08/20/design-patterns-observer-pattern – max
http://guides.rubyonrails.org/active_record_callbacks.html – steel