Следующее действие
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
Как это решить?