Method: Alchemy::Ingredient.related_object_alias

Defined in:
app/models/alchemy/ingredient.rb

Defines getter and setter method aliases for related object

Parameters:

  • The (String|Symbol)

    name of the alias

  • The (String)

    class name of the related object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'app/models/alchemy/ingredient.rb', line 46

def related_object_alias(name, class_name:)
  alias_method name, :related_object
  alias_method :"#{name}=", :related_object=

  # Somehow Rails STI does not allow us to use `alias_method` for the related_object_id
  define_method :"#{name}_id" do
    related_object_id
  end

  define_method :"#{name}_id=" do |id|
    self.related_object_id = id
    self.related_object_type = id.nil? ? nil : class_name
  end
end