The ucb_site_announcements Rails engine provides administrator management and site display for timed announcements.
- Ruby >= 3.0
- Rails >= 7.0
To add the engine to a Rails application:
- Add the gem to your Gemfile:
gem "ucb_site_announcements"
-
Run
bundle install
-
Install and run migrations
bin/rails ucb_site_announcements:install:migrations
bin/rails db:migrate
- Mount the engine in
config/routes.rb
:
mount UcbSiteAnnouncements::Engine => "/announcements" # set whatever URL you'd like to use here
- Set up a configuration block in
config/initializers/ucb_site_announcements.rb
-auth_callback
is required.
# config/initializers/ucb_site_announcements.rb
UcbSiteAnnouncements.configure do |config|
config.auth_callback = ->(controller) {
# This will be called in the admin controller to determine if the current user can make changes
# to the announcements
#
# "controller" is the current controller instance so it will have access to anything defined in your
# ApplicationController
#
# Return true if the current user can view/edit announcements; false otherwise
#
# Example:
# controller.current_user.admin?
}
config.time_zone = "Pacific Time (US & Canada)"
end
time_zone
is optional, but will default to Pacific Time (US & Canada)
Caution
If you don't provide a setting for auth_callback
all users will be able to access the admin section for announcements, which is probably not what you want.
- Migrate the database:
rake ucb_site_announcements:install:migrations
rake db:migrate
Access the admin inteface at, e.g. /announcements/admin
(assuming you set the mount point at announcements
in step 3)
To display active announcements in application views:
<%= active_site_announcements %>
This will render Bootstrap alert components for each active announcement.