I am working on the feature to allow overriding site setting based on the default_locale
. @sam have talked with me that site setting based on environment is misleading. So I’d like to draw some proposals here to see which one is the best to go.
For the record, taking an example of the possible format:
min_search_term_length:
client: true
default:
development: 2
default: 3
hidden:
production: false
development: true
As an aside, the overrides setting format will be:
min_search_term_length:
client: true
default: 3
locale_default:
zh_CN: 1
hidden: false
hidden
property proposal
hidden
only accepts a true
value instead of dependending on env. I don’t think a good use to hide anything in the dev and test environment. There are only 4 cases under the development
category.
Rails.env
params in the site setting
Remove any Rails.env
params in the site setting and put them in another yaml file.
Related site settings should be put on a file and loaded with site setting. Can be config/site_settings_{dev,env}.yml
-
+
The site setting file is clean. -
+
The site settings are centralized in a place so that it’s easy to follow. -
-
Another file
I’d prefer this for clarity.
Put them into an initializer
Same pros as above. It’s not that obvious if they are put in config/initializers/005-site_settings.rb
.
Merge them with locale_default
Instead of sending them outside the site setting files, we can have a override
params to put locale or env.
min_search_term_length:
client: true
default: 3
default_overrides:
development: 2
zh_CN: 1
This style also looks good considering such overrides are not much.