Module: Rails::On::Sorbet::AliasAssociation
- Included in:
- ActiveRecord::Base
- Defined in:
- lib/rails/on/sorbet/alias_association.rb
Overview
@requires_ancestor: singleton(ActiveRecord::Base)
Instance Method Summary collapse
-
#_alias_association_definitions ⇒ Object
: -> Array[[Symbol, Symbol]].
-
#alias_association(alias_name, target_name) ⇒ Object
Create an alias for an association like ‘belongs_to` or `has_one`.
Instance Method Details
#_alias_association_definitions ⇒ Object
: -> Array[[Symbol, Symbol]]
33 34 35 |
# File 'lib/rails/on/sorbet/alias_association.rb', line 33 def _alias_association_definitions @_alias_association_definitions || [] end |
#alias_association(alias_name, target_name) ⇒ Object
Create an alias for an association like ‘belongs_to` or `has_one`
class Foo < ApplicationRecord
belongs_to :user
alias_association :owner, :user
end
f = Foo.last
f.owner == f.user #=> true
: (Symbol, Symbol) -> void
17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/rails/on/sorbet/alias_association.rb', line 17 def alias_association(alias_name, target_name) @_alias_association_definitions ||= [] @_alias_association_definitions << [alias_name, target_name] class_eval(<<~RUBY, __FILE__, __LINE__ + 1) def #{alias_name} # def service self.#{target_name} # self.merchant_service end # end def #{alias_name}=(val) # def service=(val) self.#{target_name} = val # self.merchant_service = val end # end RUBY end |