Class: RailsPulse::TagsController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- RailsPulse::TagsController
- Defined in:
- app/controllers/rails_pulse/tags_controller.rb
Constant Summary collapse
- TAG_NAME_REGEX =
Tag validation rules
/\A[a-z0-9_-]+\z/i- MAX_TAG_LENGTH =
50
Instance Method Summary collapse
Methods inherited from ApplicationController
#set_global_filters, #set_pagination_limit
Instance Method Details
#create ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/controllers/rails_pulse/tags_controller.rb', line 9 def create tag = params[:tag] # Validate tag name = validate_tag(tag) if render_error() return end # Add tag to taggable unless @taggable.add_tag(tag) render_error("Failed to add tag") return end @taggable.reload render turbo_stream: turbo_stream.replace("tag_manager_#{@taggable.class.name.demodulize.underscore}_#{@taggable.id}", partial: "rails_pulse/tags/tag_manager", locals: { taggable: @taggable }) end |
#destroy ⇒ Object
32 33 34 35 36 37 38 39 40 |
# File 'app/controllers/rails_pulse/tags_controller.rb', line 32 def destroy tag = params[:tag] @taggable.remove_tag(tag) @taggable.reload render turbo_stream: turbo_stream.replace("tag_manager_#{@taggable.class.name.demodulize.underscore}_#{@taggable.id}", partial: "rails_pulse/tags/tag_manager", locals: { taggable: @taggable }) end |