docbrown/lib/generators/settings_model/USAGE
Michael Kohl a885483059
Introduce Settings::Base (#14138)
* Introduce Settings::Base

* Temporarily re-add gem

* Update Settings::Base to use RequestStore

* Add after_commit hook

* Restructure code

* Finish specs, rename field -> setting

* Update comment

* Undo unrelated change

* Remove redundant get_default

* Fix Doorkeeper issue

* Update docs/backend/configuration.md

Co-authored-by: Josh Puetz <josh@dev.to>

* Clarify comment and documentation

* Update vendored gems

* Fix nil-handling bug in Settings::Base

* Remove accidentaly changes from Gemfile.lock

* Update vendored gems

Co-authored-by: Josh Puetz <josh@dev.to>
2021-08-30 10:27:08 +07:00

42 lines
1.3 KiB
Text

Description:
Generates a settings model.
Examples:
* Generating a settings model (you don't need to specify the Settings::
namespace)
$ rails generate settings_model Notification
# db/migrate/<timestamp>_create_settings_notifications.rb
class CreateSettingsNotifications < ActiveRecord::Migration[6.0]
def self.up
create_table :settings_notifications do |t|
t.string :var, null: false
t.text :value, null: true
t.timestamps
end
add_index :settings_notifications, :var, unique: true
end
def self.down
drop_table :settings_notifications
end
end
# app/models/settings/notification.rb
module Settings
class Notification < RailsSettings::Base
self.table_name = :settings_notifications
# The configuration is cached, change this if you want to force update
# the cache, or call Setting::Notification.clear_cache
cache_prefix { "v1" }
# Define your settings
# setting :host, type: :string, default: "http://localhost:3000"
# setting :default_locale, default: "en", type: :string
end
end