首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何有效地将ActiveRecord关系传递给控制器?

如何有效地将ActiveRecord关系传递给控制器?
EN

Stack Overflow用户
提问于 2018-08-27 17:24:02
回答 1查看 735关注 0票数 0

我有一个Rails视图,它大量使用作用域来过滤一个由数十万行到几千行@invoices过滤记录的发票表。@invoices对象是ActiveRecord关系。一旦用户按下视图中的一个按钮,就需要将这数千条记录发送给另一个控制器/模型进行处理。

实现这一目标的最佳方法是什么?

@invoices对象作为param传递是不可能的,因此我只能想到两个选项:

1)将ids数组作为参数传递,如下所示:

代码语言:javascript
运行
AI代码解释
复制
link_to bulk_process_path(@comprobantes.pluck(:id)), method: :post

但是我担心如果有很多记录的话我会击中服务器的最大大小

2)将原始过滤视图所涉及的作用域作为参数传递,并在目标控制器中重新创建过滤器。

然而,这似乎是对数据库的不必要的点击。此外,如果我想实现复选框以进一步细化筛选的视图,则此方法将无法工作。

3)在视图中创建临时表,将名称作为参数发送,然后从外部控制器读取它?然后,我必须跟踪并删除陈旧的临时表。看起来不太优雅。

也许我遗漏了一些显而易见的东西,但似乎没有一个优雅的解决方案。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-28 10:26:19

我可以提出另一种选择。

当用户进入页面并开始过滤时,您可以将筛选器保存在会话上,然后对每个复选框更改执行ajax请求,并且可以在未选中时将这些ids保存为异常,或者在选中异常时将其删除。

您甚至可以使用websockets使其更实时。

您还可以将会话存储方法更改为ActiveRecordStore,如果您认为异常数组可能太大,或者使用像redis这样的非常快速的方法。

这样,当用户完成对筛选器的最终处理后,您将执行post请求,但不需要发送任何params,所有内容都保存在会话中。然后,可以排除未选中的所有ids,并使用参数重新创建筛选器。

我个人认为我会走这条路。希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52048845

复制
相关文章
ASP.NET MVC 5 - 将数据从控制器传递给视图
在我们讨论数据库和数据模型之前,让我们先讨论一下如何将数据从控制器传递给视图。控制器类将响应请求来的URL。控制器类是给您写代码来处理传入请求的地方,并从数据库中检索数据,并最终决定什么类型的返回结果会发送回浏览器。视图模板可以被控制器用来产生格式化过的HTML从而返回给浏览器。 控制器负责给任何数据或者对象提供一个必需的视图模板,用这个视图模板来Render返回给浏览器的HTML。最佳做法是:一个视图模板应该永远不会执行业务逻辑或者直接和数据库进行交互。相应的,一个视图模板应该只和控制器所提供的数据进行交
葡萄城控件
2018/01/10
5.1K0
ASP.NET MVC 5 - 将数据从控制器传递给视图
如何将多个参数传递给 React 中的 onChange?
在 React 中,一些 HTML 元素,比如 input 和 textarea,具有 onChange 事件。onChange 事件是一个非常有用、非常常见的事件,用于捕获输入框中的文本变化。有时候,我们需要将多个参数同时传递给 onChange 事件处理函数,在本文中,我们将介绍如何实现这一目标。
网络技术联盟站
2023/06/07
2.9K0
Vue 中,如何将函数作为 props 传递给组件
作者:Michael Thiessen 译者:前端小智 来源:medium 点赞再看,养成习惯本文 GitHub https://github.com/qq44924588... 上已经收录,更多往
前端小智@大迁世界
2020/05/18
8.3K0
ActiveRecord
MybatisPlus支持ActiveRecord形式调用,实体类只需继承Model类即可进行强大的CRUD操作
阿超
2022/08/17
2280
ActiveRecord
iframe怎么将参数传递给vue 父组件
在子页面的iframe中想将参数传递给Vue父组件,可以使用postMessage()方法将数据发送给父窗口。父组件可以通过监听message事件来接收并处理这些数据。
王小婷
2023/08/10
1.5K0
如何在Linux中使用管道将命令的输出传递给其他命令?
在Linux中,管道使用竖线符号 | 表示,它位于两个命令之间。管道的基本语法如下:
网络技术联盟站
2023/09/06
1.5K0
如何在Linux中使用管道将命令的输出传递给其他命令?
如何在Linux中使用管道将命令的输出传递给其他命令?
在Linux系统中,管道(Pipeline)是一种强大的工具,它允许将一个命令的输出作为另一个命令的输入。通过管道,我们可以将多个命令串联在一起,实现数据的流动和处理。本文将详细介绍如何在Linux中使用管道将命令的输出传递给其他命令,并提供一些常见的使用示例。
网络技术联盟站
2023/06/14
1.4K0
如何在Linux中使用管道将命令的输出传递给其他命令?
将多个属性传递给 Vue 组件的几种方式
所有使用基于组件的体系结构(如Vue和React)的开发人员都知道,创建可重用组件是很困难的,而且大多数情况下,最终会通过传入大量的属性,以便从外部更容易地控制和自定义组件。这并不坏,但是传递大量属性确实会变得有点麻烦和丑陋。
前端小智@大迁世界
2020/05/11
2K0
python接口测试:如何将A接口的返回值传递给B接口
一种方式是可以通过数据库来获取,但是通过这次接口测试,我发现读取数据库有一个缺点:速度慢
冰霜
2022/03/15
2.1K0
React篇(029)-如何将参数传递给事件处理程序或回调函数?
你可以使用箭头函数来包装事件处理器并传递参数: <button onClick={() => this.handleClick(id)} /> 这相当于调用 .bind: <button onClick={this.handleClick.bind(this, id)} />
齐丶先丶森
2022/05/12
3.8K0
ActiveRecord 模型验证
比如:file 验证图片 图片可以为空、类型只能是jpg、png或者gif,最大10M等
友儿
2022/09/11
3880
如何有效地做算法题
这篇文章最早发在我团队的文档中。我的团队鼓励每个同学都在业余时间多做算法题,特别是新人。个人认为在编程能力的提升上比做 side project 更有用,对职业发展也是如此。当然出于兴趣做的 side project 另当别论。转到这里,希望对各位读者有用。
芋道源码
2019/05/17
7170
如何最有效地编写SQL
解决数据库级(SQL)工作上的问题,应该采用的是SET方法(整体的)而不是过程式的方法。下面来看看作者为什么这么说。 编写有效的SQL查询是企业软件世界中最大的难题之一。 每个公司在数据库开发项目中所面临的最根本的问题,在于开发环境中实现的性能不能在生产环境中实现。一般来说,存在性能损失是因为生产环境中的数据量要大得多。 这些问题(运行缓慢的数据库操作)可能有各种各样的原因。本文将解释如何在编写查询时进行思考,如何思考是最基本的问题,也是解决此类问题的起点。 观察发现SQL开发人员常使用过程方法编写查询。事
CSDN技术头条
2018/02/13
1K0
如何最有效地编写SQL
网络数据是如何传递给进程的
在用户态空间,调用发送数据接口 send/sento/wirte 等写数据包,在内核空间会根据不同的协议走不同的流程。以TCP为例,TCP是一种流协议,内核只是将数据包追加到套接字的发送队列中,真正发送数据的时刻,则是由TCP协议来控制的。TCP协议处理完成之后会交给IP协议继续处理,最后会调用网卡的发送函数,将数据包发送到网卡。
luoxn28
2020/05/18
1.6K0
如何有效地进行代码 Review?
| 导语  研发都知道代码 Review 的重要性,在腾讯代码 Review 也越来越受大家重视,作为腾讯专有云平台研发的一员,我参与了大量的代码 Review,明显地感受到有效的代码 Review 不但能提高代码的质量,更能促进团队沟通协作,建立更高的工程质量标准,无论对个人还是团队都有着重要的价值。本文就为什么要做代码 Review 以及如何有效地做代码 Review 分享一下个人的看法。 1 为什么要做代码 Review 为什么要代码 Review,相信每个人心中都有比较一致的答案,Google
腾讯大讲堂
2020/09/25
5470
控制器到视图的传值方式
(3)TempData        TempData实际上保存在Session中,控制器每次执行请求时都会从Session中获取TempData数据并删除该Session。TempData数据只能在控制器中传递一次,其中的每个元素也只能被访问一次,访问之后会被自动删除。
wfaceboss
2019/04/08
1.3K0
如何有效地激活测试团队 ?
大家好,我是阿常,昨天测试职业成长+面试专项辅导社群主理人CC老师在视频号进行了第一场公开直播,直播时长1小时,观众总数415人。
程序媛淼淼
2022/12/20
3630
iOS视图控制器之间delegate传值教程
之前在StackOverFlow上看到一篇讲传值(segue传值和delegate传值)的文章,感觉讲的非常清晰,就将delegate部分翻译了一下。有兴趣能够看看。
全栈程序员站长
2022/07/07
5840
Mybatis-Plus的ActiveRecord
        Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。         ActiveRecord 一直广受动态语言( PHP 、 Ruby 等)的喜爱,而 Java 作为准静态语言, 对于 ActiveRecord 往往只能感叹其优雅,所以 MP 也在 AR 道路上进行了一定的探索
别团等shy哥发育
2023/02/25
4700
Mybatis-Plus的ActiveRecord
Yii2 ActiveRecord 模型
在查询、更新、删除的时候,都是用find()方法创建对象。 为了更好地理解save()方法,我们查看一下vendor\yiisoft\yyiw\db\BaseActiveRecord.php代码
友儿
2022/09/11
1.6K0

相似问题

Rails:将ActiveRecord关系对象传递给参数?

10

无法将值传递给DocuS传模板

14

Activerecord关系

11

ActiveRecord关系

10

Activerecord关系

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文