首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Rails传递ActiveRecord::params中的关系?

Rails传递ActiveRecord::params中的关系?
EN

Stack Overflow用户
提问于 2012-12-06 12:44:10
回答 2查看 990关注 0票数 0

我正在向我的控制器操作中的一个发出AJAX请求,该操作负责为javascript函数提供JSON服务,而javascript函数则根据我视图中的数据生成svg。

但是,我正在处理的数据也需要在视图内的一个表中表示,而且我不希望该查询必须多次针对数据库运行,所以我想知道是否可以只对页面的初始请求执行查询,然后使用params散列下的AJAX将其传递给我的其他控制器?

为了简化这个问题,这里概述了当前的工作流程:

页面请求->查询->视图服务-> AJAX GET请求->查询->生成SVG

我想要的:

页面请求->查询->视图服务-> AJAX GET请求->生成SVG

我以为我可以简单地在AJAX请求中将关系作为param传递,但是它不是将关系作为ActiveRecord::Relation传递,而是将其作为字符串传递:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"#<ActiveRecord::Relation:0x00000009137fc8>":String

我还尝试将其存储到会话中,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
session[:foo] = @bar

但我遇到了以下错误信息,这使我相信会话不能存储关系?

无法使用默认的proc转储哈希

这种工作流程的首选解决方案是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-06 13:59:32

ActiveRecord::Relation是一个内部Rails对象,它不是JavaScript的“外部世界”所知道的东西。(理论上,您可以序列化它,然后反序列化它.但这只是个坏主意:-)。所以不,这不是正确的方法。您可以在会话中保存对象本身(查询的结果,而不是ActiveRecord::Relation),尽管这通常不是很好的实践。

那么,你如何才能实现你想要的呢?

首先,Rails倾向于缓存大多数数据库查询,因此在进行优化之前,请确保需要对其进行优化。

假设是这样的话,您似乎要做两件事情:显示查询的结果,然后发出生成SVG的不同请求( AJAX请求)。这两种方法不是完全不同的(很明显,在某些方面是相关的),但在形式上是不同的,在不同的时间运行。这将提出两种不同的方法。

如果它们非常接近--也就是说,您在第一个视图中拥有您所需的90%,那么您也可以在第一个视图中添加一个隐藏字段或未显示的值,在JS中激发AJAX查询页面(DOM)以获取生成SVG所需的值。

在某些情况下,我看到人们在HTML中使用data-属性以更结构化的形式保存属性值,这种形式很容易通过JS访问,从而有效地将完整的对象序列化为HTML中未显示的数据。

但在进行此操作之前,请确保正在优化需要优化的内容:-)

票数 1
EN

Stack Overflow用户

发布于 2013-12-15 06:09:19

你可以这样做:

变量关系= '<%= @criteria.where_values_hash.to_json.html_safe %>‘

然后,可以在"data“中的ajax请求中发送此关系var。

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

https://stackoverflow.com/questions/13752198

复制
相关文章
React向路由组件传递params参数
通过路由传递params参数,可以将动态数据传递给路由组件。这些参数通常用于根据不同的参数值呈现不同的内容或执行不同的操作。在React中,我们可以使用路由库(如react-router-dom)来定义带有参数的路由,并在组件中访问这些参数。
堕落飞鸟
2023/05/20
1K0
React路由传递params、search、state参数的相关处理
路由传递参数基本都分为三个步骤:传递参数、声明接收参数、获取参数 传递params参数 <!-- 传递参数 --> <Link to={`/路径/${value}/${value}`} <!-- 声明接收参数 --> <Route path="/路径/:key/:key" /> //获取参数 console.log(this.props.match.params) 传递state参数 <!-- 传递参数 --> <Link to={{pathname: '/路径', state: {key: value
peng_tianyu
2022/12/15
1.1K0
ActiveRecord
MybatisPlus支持ActiveRecord形式调用,实体类只需继承Model类即可进行强大的CRUD操作
阿超
2022/08/17
2260
ActiveRecord
封装获取URL中params的值
utils const str = "http:www.baidu.com?name=swt&age=80&heigth=200" function get(key) { //获取?位置的索引
peng_tianyu
2022/12/15
3K0
Rails里应用Friendly Id
Change Default URL Sometimes, we want to change the displayed URL because url like /post/4/edit is not descriptive and then friendly_id come into play! Here is a simple guide for using friendly_id in your rails app. Add Gem First thing you need to do is to
用户2183996
2018/06/28
4380
总结Web应用中常用的各种Cache
cache是提高应用性能重要的一个环节,写篇文章总结一下用过的各种对于动态内容的cache。 文章以Nginx,Rails,Mysql,Redis作为例子,换成其他web服务器,语言,数据库,缓存服
前朝楚水
2018/04/02
4.7K0
总结Web应用中常用的各种Cache
Rails Service Objects: A Comprehensive Guide
Ruby on Rails ships with everything you need to prototype your application quickly, but when your codebase starts growing, you’ll run into scenarios where the conventional Fat Model, Skinny Controller mantra breaks. When your business logic can’t fit into either a model or a controller, that’s when service objects come in and let us separate every business action into its own Ruby object.
WindCoder
2018/09/19
9120
Rails Service Objects: A Comprehensive Guide
ActiveRecord 模型验证
比如:file 验证图片 图片可以为空、类型只能是jpg、png或者gif,最大10M等
友儿
2022/09/11
3860
Mybatis-Plus的ActiveRecord
        Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。         ActiveRecord 一直广受动态语言( PHP 、 Ruby 等)的喜爱,而 Java 作为准静态语言, 对于 ActiveRecord 往往只能感叹其优雅,所以 MP 也在 AR 道路上进行了一定的探索
别团等shy哥发育
2023/02/25
4600
Mybatis-Plus的ActiveRecord
java中的参数传递-值传递、引用传递
参数是按值而不是按引用传递的说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递。
chenchenchen
2022/11/29
4.7K0
java中的参数传递-值传递、引用传递
慢的不是 Ruby,而是你的数据库
许多人不停抱怨 Ruby 运行缓慢。诚然,它的确不如人意,然而这并非致命伤,因为问题的根源在于你的数据库速度缓慢,成为了瓶颈。因此,这个标题也可以改为 “Ruby 虽慢,但对你而言无关紧要”。
深度学习与Python
2023/10/19
1650
慢的不是 Ruby,而是你的数据库
几种实用型Ruby Web开发框架介绍
  大家在通过对Ruby的学习后,都知道,Ruby on Rails是一款性能非常优越的Ruby Web开发框架。但是其他的Ruby Web开发框架又有多少人知道一二呢?
数据星河
2018/11/28
2.4K0
Rust Web 生态观察| SeaORM :要做 Rust 版本的 ActiveRecord
有些人说用 Rust 进行 Web 开发 是杀鸡用牛刀,这种观点其实是对「系统级语言」的刻板印象造成的。无论从性能、工程架构还是开发效率,Rust 其实都很出色,目前就是需要一套比较成熟的框架。无论如何,Rust 在 Web 开发领域的生态在逐步成型。
张汉东
2021/10/13
10.3K0
Java中的值传递与引用传递
在Java编程中,我们常常听到关于值传递和引用传递的讨论。这两个概念涉及到数据在方法之间如何传递的问题。理解这些概念对于正确编写Java程序至关重要。在本文中,我们将深入探讨什么是值传递和引用传递,以及为什么Java中只有值传递这一问题。
疯狂的KK
2023/09/07
3570
Java中的值传递与引用传递
C# 中的 Out 和 Ref 及Params 参数
out 和ref 参数 经常用来通过方法传递参数来获取值,当您的方法不只有一个返回值的时候,这两个参数就发挥作用了。ref是传递参数的地址,out是返回值,两者有一定的相同之处,不过也有不同点。  在这篇文章里,我将解释如何在c#应用中使用这两个参数。   1、out 参数   out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。   public class mathClass { public static int TestOu
跟着阿笨一起玩NET
2018/09/18
1.2K0
Rails 7 中引入 Bootstrap 5
在 Rails 6 中有两种不同的工具可以用来管理前端的 CSS、JavaScript 以及 images 等资源,分别是 “Sprockets” 和 “Webpacker”,“Sprockets” 除了 Rails 应用外很少使用,但是 “Webpacker” 不仅在 Rails 中,在其他应用框架中也被广泛的使用。
RiemannHypothesis
2023/02/20
3.1K0
Rails 7 中引入 Bootstrap 5
JAVA中的值传递和引用传递
先来看一个作为程序员都熟悉的值传递的例子: ... ... //定义了一个改变参数值的函数 public static void changeValue(int x) { x = x *2; } ... ... //调用该函数 int num = 5; System.out.println(num); changeValue(num); System.out.println(num); ... ... 答案显而易见,调用函数changeValue()前后num的值都没有改变。 由此做一个引子,我用图表描绘
小柒2012
2018/04/13
1.7K0
JAVA中的值传递和引用传递
1.02-get-params
import urllib.request import urllib.parse import string def get_method_params(): url = "http:/
hankleo
2020/09/17
4490
Rails 7 中引入 Bootstrap 5
在 Rails 7 中静态资源的管理已经从 “Webpacker” 改为了 “Import Maps”,用来简化基于 JavaScript 的工具和包管理器 Webpack、Yarn 或者 npm 的使用。
RiemannHypothesis
2023/03/16
2.5K0
Rails 7 中引入 Bootstrap 5
Rails框架流行在他的设计理念
这两天看了一本书《Grails权威指南》,看了这个Java上Rails框架,其中有两条设计理念: 1、make simple thing easy and make complex possible -让简单的事情变的容易,同时让复杂的事情的实现成为可能。 2、Convention Over Configuration --约定高于配置 Rails几乎成了敏捷web框架的代名词,Java社区的Grails,.NET开源项目Mono Rails和Subsonic,还有微软ASP.NET Team正在做的
张善友
2018/01/30
2K0

相似问题

通过Rails中的params散列传递ActiveRecord数组

11

Rails ActiveRecord关系

36

Rails中的嵌套ActiveRecord关系

35

Rails/ActiveRecord中的种子关系

14

ActiveRecord中的Rails嵌套关系

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文