Method: ActionCable::Channel::Base#perform_action
- Defined in:
- actioncable/lib/action_cable/channel/base.rb
#perform_action(data) ⇒ Object
Extract the action name from the passed data and process it via the channel. The process will ensure that the action requested is a public method on the channel declared by the user (so not one of the callbacks like #subscribed).
175 176 177 178 179 180 181 182 183 184 185 186 |
# File 'actioncable/lib/action_cable/channel/base.rb', line 175 def perform_action(data) action = extract_action(data) if processable_action?(action) payload = { channel_class: self.class.name, action: action, data: data } ActiveSupport::Notifications.instrument("perform_action.action_cable", payload) do dispatch_action(action, data) end else logger.error "Unable to process #{action_signature(action, data)}" end end |