Hi все новичок вопрос.Как создать класс помощника контроллера действий и как получить доступ к нему в действии контроллера?
Я создаю одно приложение rails, где после отображения результата пользователю мне нужно выполнить некоторые другие операции в фоновом режиме для обновления базы данных.
(жаль, что я беден при объяснении вещей, увидеть мой пример кода для ситуации)
В действии моего контроллера я использую сторонних API для получения данных с удаленного сервера. После отображения данных, полученных пользователем, я хочу обновить таблицу базы данных с помощью настроенных данных по извлеченным данным.
class MyController < ApplicationController
def SomeAction
#some logic
@result = FetchDataFromApi#Using third party api to fetch huge data
#show result to user
#after showing i need to do following operations elsewhere (controller helper)
#based on some fetched result i want to update my table
myId = @result.id
dataObj = MyModel.find(myId)
info = @result.information.gsub(',',' ') #some string operation
dataObj.update_attributes(:info, info)
end
end
я могу использовать spawnling
камень выполнить дополнительную работу после того, как показывает результат пользователю. Но мне просто интересно, могу ли я сделать это с помощью помощника или других вещей с рельсами.
Если вам нужно запустить что-нибудь в качестве фона вы необходимо использовать sidekiq или аналогичный инструмент. – BroiSatse
@BroiSatse есть побочные эффекты с помощником actioncontroller? – Aparichith
Помощники ActionCOntroller - это мост между контроллером и представлением, если у вас нет другого смысла. Ответ всегда отправляется как последний шаг жизненного цикла запроса, поэтому любой нефонический код должен будет завершить выполнение до отправки ответа. Вы можете попробовать использовать потоки, но это доказывает больше проблем. Sidekiq - это решение, которое я использовал во всех моих проектах, и, похоже, это правильно. – BroiSatse