我正在向我的一个控制器操作发出 AJAX 获取请求,该控制器操作负责将 JSON 提供给一个 javascript 函数,该函数又根据我的视图内的数据生成一个 svg。
但是,我正在使用的数据也需要在视图内的表中表示,并且我不希望查询必须多次针对数据库运行,所以我想知道是否可以只执行对页面的初始请求的查询,然后在参数哈希下使用 AJAX 将其传递给我的另一个控制器?
为了简化问题,这里概述了当前的工作流程:
页面请求 -> 查询 -> 查看服务 -> AJAX GET 请求 -> 查询 -> 生成 SVG
我想要的是:
页面请求 -> 查询 -> 查看服务 -> AJAX GET 请求 -> 生成 SVG
我想我可以简单地将关系作为 AJAX 请求中的参数传递,而不是将关系作为 ActiveRecord::Relation 传递,而是将其作为字符串传递:
"#<ActiveRecord::Relation:0x00000009137fc8>":String
我还尝试将其存储到会话中,例如:
session[:foo] = @bar
但是我遇到了以下错误消息,这使我相信会话不能存储关系?
无法使用默认 proc 转储哈希
这种工作流程的首选解决方案是什么?