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_toorhas_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(" def \#{alias_name} # def service\n self.\#{target_name} # self.merchant_service\n end # end\n\n def \#{alias_name}=(val) # def service=(val)\n self.\#{target_name} = val # self.merchant_service = val\n end # end\n RUBY\nend\n", __FILE__, __LINE__ + 1) |