Module: Trek::Model

Extended by:
ActiveSupport::Concern
Included in:
ResourceController
Defined in:
app/controllers/concerns/trek/model.rb

Instance Method Summary collapse

Instance Method Details

#modelObject



11
12
13
# File 'app/controllers/concerns/trek/model.rb', line 11

def model
  raise "Please define a `model` method in your controller."
end

#model_collectionObject



19
20
21
# File 'app/controllers/concerns/trek/model.rb', line 19

def model_collection
  model_name.collection.to_sym
end

#model_collection_routeObject

Returns model collection as an array of symbols for route building. For namespaced models like Missive::List, returns [:missive, :lists]. For non-namespaced models like Page, returns [:pages].



26
27
28
# File 'app/controllers/concerns/trek/model.rb', line 26

def model_collection_route
  model_name.collection.split("/").map(&:to_sym)
end

#model_elementObject



30
31
32
# File 'app/controllers/concerns/trek/model.rb', line 30

def model_element
  model_name.element.to_sym
end

#model_element_routeObject

Returns model element as an array of symbols for route building. For namespaced models like Missive::List, returns [:missive, :list]. For non-namespaced models like Page, returns [:page]. Derived from collection (which preserves namespace) rather than element (which demodulizes).



39
40
41
42
# File 'app/controllers/concerns/trek/model.rb', line 39

def model_element_route
  parts = model_name.collection.split("/")
  (parts[0...-1] + [parts.last.singularize]).map(&:to_sym)
end

#model_intro(action: nil) ⇒ Object



44
45
46
47
# File 'app/controllers/concerns/trek/model.rb', line 44

def model_intro(action: nil)
  action ||= @object&.new_record? ? "new" : "edit"
  t("admin.#{model_collection}.#{action}.intro")
end

#model_objectsObject



15
16
17
# File 'app/controllers/concerns/trek/model.rb', line 15

def model_objects
  model.all
end