草庐IT

record-count

全部标签

sql - Active Record 查询以匹配每个子集元素

在我的RoR应用程序中,我有一个类似于此的数据库查找:Client.joins(:products).where({'product.id'=>[1,2,3]})不幸的是,这将返回所有购买了产品1、2或3的客户,但我只想返repo买了三种产品所有的客户。换句话说,我想编写一个查询来匹配给定集合中的n个元素。有什么优雅的解决方案吗? 最佳答案 这不是很优雅。但它应该转化为所需的SQL。Client.joins(:products).where({'products.id'=>[1,2,3]}).group('users.id').ha

ruby-on-rails - ruby rails 3 : How to access an attribute of each record in a has_many query

我不确定如何在标题中表达它,但我正在尝试执行以下操作。我有2个具有以下关系的模型:classCampaign现在,Point模型有一个“locale”属性,我希望能够将特定事件的每个点的所有“locale”放入一个数组、集合或其他任何东西中,而无需执行类似locales=Array.newcampaign.points.eachdo|p|locales我在想一些与campaign.points.locales类似的东西。是否有一些很好的Rails方法来执行此查询,或者我只需要遍历集合?感谢您的帮助。编辑:还因为这种关系实际上是一种“has_manythrough”关系,所以这种方法不起

ruby-on-rails - rails : how to eager load limited records of ordered association without N+1 queries

我知道关于其中一些主题有很多问题,但我没有找到涵盖所有方面的问题。考虑User、Activity和Like模型。当我查询一个事件时,我想为集合中的每个事件加载第一个Like而不进行N+1查询并且不加载超过必要的记录。我的代码看起来像这样:classUser{order(created_at::asc)},class_name:"Like"endclassLike我做了一个全面的要点来测试不同的加载策略和方法:https://gist.github.com/thisismydesign/b08ba0ee3c1862ef87effe0e25386267策略:N+1查询、左外连接、单次额外查

ruby - 在 rails3/jruby 中,什么会间歇性地导致这个错误? SAVEPOINT active_record_1 不存在

当一个人测试系统时,不会发生这些错误。但是通过jmeter测试,我可以非常可靠地重现一些错误:ActiveRecord::JDBCError:SAVEPOINTactive_record_1doesnotexist:ROLLBACKTOSAVEPOINTactive_record_1Stack:gems/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract_adapter.rb:207:in`log'gems/gems/activerecord-3.0.10/lib/active_record/c

ruby-on-rails - ObjectSpace.count_objects 中每个哈希值的含义是什么?

在ruby​​1.9.3中,我使用ObjectSpace来检查内存问题。ObjectSpace.count_objects返回一个散列,如下所示:{:TOTAL=>1004232,:FREE=>258543,:T_OBJECT=>12519,:T_CLASS=>10318,:T_MODULE=>1330,:T_FLOAT=>2024,:T_STRING=>555422,:T_REGEXP=>3543,:T_ARRAY=>68372,:T_HASH=>5399,:T_STRUCT=>542,:T_BIGNUM=>8105,:T_FILE=>10,:T_DATA=>44277,:T_MAT

ruby-on-rails - rails 3 :How to Sum up Record

我有模型Register,它根据部门和组标记用户的出勤情况。每个用户都有一个部门和组。注册模型date:date,departmentid:string,groupid:integer,one:integer,two:integer在上面的字段中,“一和二”是时间段(比如:从9-14,14-18)。出勤被标记为用户属于当前日期,组ID,部门ID。所以对于同一天会有具有groupid、departmentid和他们的出勤率的多个条目。下面的示例注册表我要找没有。每天关注的用户数。目前我已经尝试过@register=Register.where(:date=>"2012-12-28").s

ruby - 为什么 Ruby array[array.length, count] 返回 []?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:IstheresomekindofunseenArrayterminationinRuby?ArrayslicinginRuby:lookingforexplanationforillogicalbehaviour(takenfromRubykoans.com)a=%w[abc]a[3,1]#=>[]a[4,1]#=>nil谁能解释为什么a[3,1]返回[]?为什么不用nil呢?谢谢。

ruby-on-rails - Active Record 未定义方法 read_attribute_for_serialization

我有一个Rails范围,它获取表的第一条记录并将其分配给@variable。它返回单个对象或空的事件记录关系。我的问题是我正在使用自定义序列化程序来呈现json,但是如果范围返回一个空的ActiveRecord关系,我会得到“ActiveRecord未定义方法read_attribute_for_serialization”,除非我使用each_serializer,但是如果范围返回一个我有的对象使用序列化器渲染它:有没有办法不这样做就解决这个问题:if@variable.blank?renderjson:@variable,each_serializer:CustomSerializ

ruby-on-rails - rails : How to observe join records that don't actually have a Model?

是否可以使用Observer来观察JOIN记录的创建?例如,您有一个用户模型has_and_belongs_to_manyBookModels。是否可以在创建或删除books_users记录时监控它们,或者我必须有BookUser模型才能执行此操作?我想观察的例子:User.books或User.books.push(book)或随便!谢谢,戴夫·K。 最佳答案 这就是您应该使用has_many:through而不是has_and_belongs_to的确切原因;它允许您创建一个BookUser模型,其中可以使用常规的activer

ruby-on-rails - 动态创建新的 Active Record 模型和数据库表

我不确定我应该给这个问题起什么名字。我刚开始服务器端编程,需要一些帮助。到目前为止,我阅读的所有关于RoR的教程都涉及创建预定义表和预定义字段(id、姓名、电子邮件等)).他们使用ActiveRecord作为基类,保存到数据库由父类(superclass)自动处理。我正在尝试编程的是允许带有字段的用户定义表。于是想到了这个办法。WebUI将有一个空表,用户将命名该表,并添加列(字段),然后添加行,然后保存。我将如何实现?我不要求详细信息,只是对它的概述。正如我所说,到目前为止,我阅读的所有教程都涉及预定义表,其中包含预定义ActiveRecord子类的字段。简而言之,我想问的是,如何在