module ParentResource::ClassMethods

Public Instance Methods

parent_resources(*keys) click to toggle source
# File lib/parent_resource.rb, line 8
def parent_resources(*keys)
  keys.each do |key|
    create_parent_resource(key)
  end
end

Private Instance Methods

create_parent_resource(key) click to toggle source
# File lib/parent_resource.rb, line 16
def create_parent_resource(key)
  model = key.to_s.classify.constantize
  key_name = "#{key}_id".to_sym
  val = "@#{key}".to_sym

  define_method(key) do
    unless instance_variable_defined?(val)
      res = params.key?(key_name) ? model.find(params[key_name]) : nil
      instance_variable_set(val, res)
    end
    instance_variable_get(val)
  end
end