草庐IT

索引优化查询

全部标签

ruby - 带有表双下划线的 Sequel gem 限定查询列名

使用Sequelgem:employees=DB[:prm_master__employee.identifier].join(:prm_master__employee_custom_fields.identifier,:employee=>:employee).where("termination_date>=?","06/01/2012").or("termination_date=NULL").and("employee='holderl'")以上失败:~/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/sequel-3.

arrays - 如何从数组中删除位于另一个数组索引处的元素

我有两个数组,一个包含数据,一个包含索引。我想知道是否有一些好的方法可以删除indexes中给定位置的data中的元素。我可以做简单的迭代,但我想知道最短的方法是什么:data=['a','b','c','a','b','c','a','b','c']indexes=[2,5,8]//somecodeheredata中的元素在索引恰好与数组索引中的数字重合时消失。它应该看起来像这样:['a','b','a','b','a','b'] 最佳答案 data.values_at(*data.each_index.to_a-indexes)

ruby-on-rails - ruby/rails 中的日期范围查询

我正在尝试运行以下查询。我知道语法有误,但我不太清楚它有什么问题。基本上,我试图找出有多少游戏的日期在今天的45天内。我有一个名为Game的模型,它有一个名为date_of_game的字段属性。我的查询:Game.where(date_of_game:谢谢!! 最佳答案 你说:howmanygameshavedatesthatarewithin45daysoftoday但是您的代码将检索日期小于今天+45天的所有游戏,这意味着它会返回去年的游戏。要遵循您的声明,您应该使用:Game.where(date_of_game:Date.c

ruby - 如何设置mysql2时区选项以删除查询警告

使用mysql2做查询总是得到警告/usr/local/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/active_record/connection_adapters/mysql2_adapter.rb:463:warning::database_timezoneoptionmustbe:utcor:local-defaultingto:local我确实看到了时区选项Mysql2现在支持两个时区选项::database_timezone-thisisthetimezoneMysql2willassumefieldsarealreadystored

ruby-on-rails - 无法从 Rails 4 和 PSQL 9.3 中的表中删除索引

在我的schema.rb中有以下行:add_index"users",["email"],name:"index_users_on_email",unique:true,using::btree当我在psql中运行\di时,我得到:Schema|Name|Type|Owner|Table--------+--------------------------------------------------------------+-------+-------+-----------------------public|index_users_on_email|index|alex|us

ruby-on-rails - 如何使用 searchkick 进行逻辑运算的复杂查询

我正在使用searchkick库作为产品搜索的elasticsearch客户端。https://github.com/ankane/searchkick可以创建'OR'条件和'AND'条件;AND运算Product.search其中:{price:{lte:200},in_stock:true}或运算Product.search其中:{或:[[{in_stock:true},{backordered:true}]]}但我坚持使用searchkick创建多个“AND”“OR”条件。我需要类似的东西A或B或(C和D)或者我需要这样,A与B与(C或D)请指导我,如何实现这一目标谢谢

arrays - 在 Ruby 中,我如何找到一个元素数组的索引?

在Ruby2.4中,如何找到一个数组中某个元素在另一个数组中的最早索引?也就是说,如果一个数组的任何元素出现在另一个数组中,我想获得第一个索引。我认为find_index可能会这样做,但是a=["a","b","c"]#=>["a","b","c"]a.find_index("a")#=>0a.find_index(["b","c"])#=>nil在上面的示例中,我希望看到输出“1”,因为元素“b”出现在数组“a”中的索引1处。 最佳答案 find_index获取单个元素。你可以通过类似的方式找到最小值a=["a","b","c"]

sql - 如何使用 Arel 正确地向带有 'or' 和 'and' 子句的 SQL 查询添加括号?

我正在使用RubyonRails3.2.2,我想生成以下SQL查询:SELECT`articles`.*FROM`articles`WHERE(`articles`.`user_id`=1OR`articles`.`status`='published'OR(`articles`.`status`='temp'AND`articles`.`user_id`IN(10,11,12,)))通过使用Arel这样Article.where(arel_table[:user_id].eq(1).or(arel_table[:status].eq("published")).or(arel_tab

ruby-on-rails - 如何在 Rails Controller 操作的 RSpec 测试中指定查询字符串?

我有一个名为yearly_csv的操作。在此操作中,我执行两个操作,如需求和供应。defyearly_csvifdemand=='true'demand_csvelsesupply_csvendend我的View中有两个单选按钮来选择其中一个操作。现在我想在RSpec中单独测试每个操作。例如,一个供应规范和另一个需求规范。我的问题是如何将单选按钮值传递给yearly_csv操作(get)? 最佳答案 在RSpec的较新版本中,您必须使用params键声明查询字符串参数:get:yearly_csv,params:{demand:'t

ruby-on-rails - 构建一个 Rails 表单来过滤索引页面?

大家好,我在过滤系统中数千个贸易项目的展示时遇到了问题。根据我们正在构建的系统的规范,我们必须有一个表格,允许人们输入开始日期,然后输入以分钟为单位的间隔,以过滤项目的显示。我已经构建了我的辅助函数来返回该间隔期间内的所有交易,但我无法终生正确构建将在索引页顶部返回日期时间值和整数值的表单?有什么想法吗?我是否必须构建一个单独的模型对象来为其赋值,还是有更简单的方法? 最佳答案 在您的索引页面上,您可以像这样创建一个过滤器表单:getdo%>然后您的表单将使用查询字符串参数在您的页面上执行GET,然后您可以在您的Controller