Models
Models are not separated by frontend
, backend
or auth
and therefore do not need to be namespaced.
Create your model at app/models/archangel/foo.rb
add the following.
module Archangel
class Foo < ApplicationRecord
before_validation :parameterize_slug
validates :bar, presence: true
validates :slug, presence: true, uniqueness: { scope: :site_id }
belongs_to :site
protected
def parameterize_slug
self.slug = slug.to_s.downcase.parameterize
end
end
end
To change the id
for constructing a URL to this object you can override #to_param
in your model to make foo_path
construct a path using the record slug
instead of the id
. See #to_param
for further explanation.
def to_param
slug
end