Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails 3链式关联和作用域

Rails 3链式关联和作用域
EN

Stack Overflow用户
提问于 2012-10-04 19:46:13
回答 3查看 271关注 0票数 0

我有ProjectEntry作为模型。条目有日期。

问题是,我现在只想显示该月的条目,按项目分组。如果我执行projects.each do |p|,然后查询条目(p.entries),则返回的条目是所有月份的条目,而不仅仅是我指定的月份。

虽然这是一个显而易见的结果,但在Rails中有没有一种方法可以简单地使用我原来的链式作用域返回该月的条目?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-04 19:51:15

has-many关联也接受作用域,因此您可以使用projects.entries.your_scope来过滤它们。缺点是,这将需要为每个项目另一个数据库查询,这可能会很慢,这取决于数据库的大小。

另一种不需要额外查询的方法是获取已过滤的条目,然后向上获取项目:

代码语言:javascript
运行
AI代码解释
复制
entries = Entry.my_conditions.includes(:project)
entries_by_project = entries.group_by(&:project)

现在您有了一个哈希表,它的键是项目,值只是符合条件的项目的条目。

票数 1
EN

Stack Overflow用户

发布于 2012-10-04 19:52:45

编辑:我确实误解了:)

第2步:您可以跨模型合并作用域。因此,如果您可以在Entry上创建一个where-type作用域来从给定月份中选择条目,那么您可以尝试类似这样的操作

代码语言:javascript
运行
AI代码解释
复制
Project.with_entries.on(param_the_month).merge(Entry.on(param_the_month))

我将其命名为on,类似于您在Project上的作用域-没有看到您的数据模型,我不能确切地说出如何实现它。

票数 2
EN

Stack Overflow用户

发布于 2012-10-04 19:51:34

您可以将includes添加到您的作用域中,这样它就不会再次查询这些记录,当您使用项目作用域时,它会立即加载这些记录。

代码语言:javascript
运行
AI代码解释
复制
scope :my_scope, includes(:entries).where( :active => true )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12734735

复制
相关文章
改变视图的位置和大小
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/53068421
用户1451823
2018/09/13
1.3K0
拖动图片改变位置
在线展示:https://gethtml.cn/project/2020/04/14/index.html
Dreamy.TZK
2020/04/16
6.8K1
拖动图片改变位置
Qt-改变tabBar位置并改变文字方向
QTabWidget默认tab页标题(tabBar)在上面,但是有时候我们需要改变它的位置,比如做一个设置页面,想将它放到左边显示,这个比较简单,只需要设置一个属性即可实现:tabPosition:west,但是我们发现它文字的方向是没有改变的,这样完全没有使用体验,所以我们需要改变文字的方向。
kdyonly
2023/03/03
3.5K0
Qt-改变tabBar位置并改变文字方向
「R」cowplot(二)改变轴位置
从ggplot2的2.2.0版本开始,它本身就支持图形的第二个轴。因此,cowplot的函数switch_axis_position()已经过时了。下面是一些可以用ggplot2实现的例子。
王诗翔呀
2020/07/06
8900
「R」cowplot(二)改变轴位置
原生dom拖拽改变位置
先上效果图: 图片 废话不多说了 直接上代码吧... 很简单的 就是一些原生操作 <!DOCTYPE html> <html lang="en">   <head>     <meta charset="UTF-8" />     <meta name="viewport" content="width=device-width, initial-scale=1.0" />     <title>Document</title>   </head>   <style>     .drapDom {   
biaoblog.cn 个人博客
2022/08/11
1.1K0
原生dom拖拽改变位置
python | pandas 改变列的位置、填充缺失值
本期的文章源于工作中,需要固定label的位置,便于在spark模型中添加或删除特征,而不影响模型的框架或代码。 spark的jupyter下使用sql 这是我的工作环境的下情况,对你读者的情况,需要具体分析。 sql = ''' select * from tables_names -- hdfs下的表名 where 条件判断 ''' Data = DB.impala_query(sql) -- 是DataFrame格式 **注意:**DB是自己写的脚本文件 改变列的
努力在北京混出人样
2019/02/18
5.3K0
python | pandas 改变列的位置、填充缺失值
本期的文章源于工作中,需要固定label的位置,便于在spark模型中添加或删除特征,而不影响模型的框架或代码。 spark的jupyter下使用sql 这是我的工作环境的下情况,对你读者的情况,需要具体分析。 sql = ''' select * from tables_names -- hdfs下的表名 where 条件判断 ''' Data = DB.impala_query(sql) -- 是DataFrame格式 **注意:**DB是自己写的脚本文件 改变列的位置 前
努力在北京混出人样
2018/05/14
5.6K0
一文带你了解 Flink 基本组件栈
Flink 同样遵循着分层的架构设计理念,在降低系统耦合的同时,也为上层用户构建 Flink 应用提供了丰富且友好的接口。
kk大数据
2019/09/24
9250
一文带你了解 Flink 基本组件栈
热点图 页面缩放不改变位置
jQuery下载地址:http://cdn.hcses.com/jquery/jquery.js CSS下载地址:http://cdn.hcses.com/common/mobile-style.css
华创信息技术
2019/11/08
2K0
改变Android手机软件安装位置方法
发表评论 862 views A+ 所属分类:技术 谷歌Android系统手机默认只能把软件安装在手机 内存里,使本来就不大的手机内存显得捉襟见肘。如果你也是个手机软件狂人,喜欢尝试各种各样新奇
用户1127987
2018/06/04
2.2K0
利用深度学习改变位置感知计算
位置感知位于定位服务(LBS)的核心位置。然而,准确地估计目标的位置并不那么简单。全球定位系统(GPS),可以直接输出地理空间坐标,但它的错误可能远远超出了某些应用的容许度。在GPS定位区域,可以通过惯性测量单元(imu)和照相机等传感器提供的原始数据间接推断出位置。通常,数据,无论是直接测量地理空间坐标还是推断位置,都必须经过相当费力的人工数据处理管道,才能被高水平的LBS所消耗。本文回顾了最近两项关于将深度学习模型引入位置感知计算的尝试,有效地减少了专家的参与。 一、目标跟踪通过部分可观察的随机过程 h
AiTechYun
2018/03/02
1.6K0
利用深度学习改变位置感知计算
实现盒子宽度随鼠标位置而改变
当鼠标在拖动线(drag-line)区域内按下时,监听鼠标移动,获取鼠标移动的实时距离 将这个距离加上leftCategory本来的宽度,就是leftCategory随着鼠标移动的宽度
切图仔
2022/09/08
1K0
[Qt]窗口大小、位置及其大小改变引起的事件QResizeEvent
原文链接:https://blog.csdn.net/humanking7/article/details/86108269
祥知道
2020/03/10
11.2K0
Windiows桌面文件不能拖动以改变位置
2008-10-01 据说出现这种情况的解决方法是按几下ESC键就行了,我试了一下还挺灵。 百度知道解决方案位置:http://zhidao.baidu.com/question/64530794.html 少小离家老大回 乡音无改鬓毛衰 儿童相见不相识 笑问客从何处来 离别家乡岁月多 近来人事半消磨 惟有门前镜湖水 春风不改旧时波
雷大亨
2017/12/29
9060
安卓代码动态改变控件位置和属性
以下代码改变TextView的margin和CENTER_HORIZONTAL属性。
用户4458175
2020/02/12
1.7K0
Docker的基本组成
CentOS Docker 安装 Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本
玖柒的小窝
2021/09/17
4450
Docker的基本组成
Docker的基本组成
  Docker镜像就好像一个模板,可以通过这个模板来创建服务,就比如在JAVA中,你新建一个类比如A类,在运行中,这个类就会变成Class文件,那么在其他类中就可以多次通过New 关键字创建,而Docker也是这个原理,比如我们拉取一个 tomcat镜像,那么就可以创建多个tomcat
彼岸舞
2021/02/25
4010
Docker的基本组成
word批量操作图片到指定位置改变大小改变版式
环境:winx office2019+ 语言:vba+word 第一步:插入图片,这里不再赘述 重要代码
2021/11/08
1.5K0
javascript如何改变cssText
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
马克java社区
2020/08/01
1K0
javascript如何改变cssText
如何改变文件权限
昨天我们已经知道了怎么查看文件的权限,那么是不是迫不及待的想要给自己开点权限?先别急,今天又get了一个小小的tip。昨天我们只学习了使用ls -al。想要查看ls的其他用法可以使用man ls 和info ls。 OK ,今天的tips就到这,我们来看怎么修改文件权限。
用户3258338
2019/07/19
1.2K0
如何改变文件权限

相似问题

字节上的异或运算

11

需要帮助将c#异或转换为Java

11

单字节异或密码

10

c#在字节数组上应用64位异或

20

将异或转换为NOR

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档