Предложение о спасении запускало одно и то же действие несколько раз - PullRequest
0 голосов
/ 16 июня 2020

Следующее действие

def send(server=1)
  @messagelog = Messagelog.new(server_id: params[:server], struttura_id: params[:struttura], user_id: params[:user], chat_id: params[:chat], methodtype_id: params[:methodtype], payload: params[:payload])
  @messagelog.save
  bot = Telegram.bot
  case params[:methodtype]
  when 1
    result =  bot.send_message(chat_id: params[:chat], text: params[:payload])
  when 2 
    result =  bot.send_photo(chat_id: params[:chat], photo: params[:payload])
  when 3 
    result =  bot.send_document(chat_id: params[:chat], document: params[:payload])
  else
  end
  @messagelog.update_attributes(result: result.to_json)
  rescue StandardError => msg
end

вызывается через API и запускается 5 раз, спасено или нет. Его маршрут:

  namespace  :api  do
    namespace  :v1 do
      post 'send', to: 'messages#send', defaults: { format: :json }

Класс class Api::V1::MessagesController < Api::V1::ApibaseController не вызывает before_actions, но наследует

class Api::V1::ApibaseController < ApplicationController
  before_action :access_control

def access_control
  authenticate_or_request_with_http_token do |token, options|
    @server = Server.where('apikey = ?', token).first
  end
end

Откуда происходит это умножение действий? Единственный сбой в журналах - это сообщение, которое:

No template found for Api::V1::MessagesController#send, rendering head :no_content

Если параметр жестко привязан к действию, он также генерируется, но происходит только одно действие. Rails 5.2.4

Как это решить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...