我正在开发一个RoR应用程序,当它在GET / resource上回答时,需要尝试更新所有资源,并从外部服务中获取数据。 为了使事情更清楚,伪代码为:
def show
resource = find_resource
call_external(resource: resource)
resource = find_resource
render
end
现在,这可行,但是我真的不喜欢双重发现。绝对合法,因为技术规范实际上就是获取资源,使用其属性定义要更新的资源的从到范围(可能包含当前资源),然后再次获取资源,仍然非常丑陋。
关于如何重构它的任何建议?非常感谢
答案 0 :(得分:0)
您可以使用reload
方法来更新AR对象
def show
resource = find_resource
call_external(resource: resource)
resource.reload
render
end