【发布时间】:2014-12-04 11:42:29
【问题描述】:
大家好,新手问题。
我正在创建一个 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 gem 执行额外的操作。但我只是好奇我是否可以使用助手或其他导轨的东西来做到这一点。
【问题讨论】:
-
如果您需要在后台运行任何东西,您需要使用 sidekiq 或类似工具。
-
@BroiSatse actioncontroller helper 有副作用吗?
-
ActionCONtroller 助手是控制器和视图之间的桥梁,除非您有其他想法。响应始终作为请求生命周期的最后一步发送,因此任何非后台代码都需要在发送响应之前完成执行。您可以尝试使用线程,但事实证明这些会导致更多问题。 Sidekiq 是我在所有项目中使用的解决方案,它似乎做得很好。
-
我会的,产卵怎么样?
标签: ruby-on-rails ruby helpers