Tag: sql

范围:按两个日期之间的差异排序

我想创建一个范围,从最近的日期到最远的日期对数据进行排序。 例如,我有3个值: 然后我想对最接近给定日期的日期进行排序: 2012-12-29 。 我应该得到这个顺序: 2, 3, 1 。 如果我选择2012-12-30 ,结果必须是: 2012-12-30 。 我试过这样的事情: scope :order_by_closest_date, lambda{|time| select(“*, (date – DATE(‘#{time}’)) AS time”).order(“time ASC”) } 但它不起作用。 有关信息:Rails 3.2.9 Ruby 1.9.3 Postgresql 9.1.4。 有任何想法吗?

Rails 5查询从我正在查看的post以外的相同类别中提取post

我正在尝试在post详情页面上显示来自同一类别的3个其他post。 所以我有这个问题: def show @posts_from_same_category = Post.where(category_id: @post.category_id).limit(3).order(“RANDOM()”) end 所以页面结构如下: post标题 post文字 (标题)来自同一类别的更多post 其他职位名称1 其他职位名称2 其他职位名称3 它返回所有post,包括我正在查看的post。 我如何编写查询来拉除我当前正在查看的post以外的post? 谢谢

Ruby – Rails – SQL查询 – 在搜索词中重新排序单词

我正在开发一个带有搜索function的项目,其设置如下: if params[:search_term].present? && params[:search_term].length > 1 @candidates = @candidates.where(“title like ?”,”%#{params[:search_term]}%”) end 客户要求我“放松”搜索 – 特别是单词顺序。 目前,如果有候选人的White bar stool的标题和一个搜索White stool bar ,它没有返回任何结果。 有没有办法让我执行一个忽略单词顺序的查询? 或者,对于我来说,使用不同的单词顺序制作新的搜索词params,进行多次搜索并合并结果会更好吗?

Rails 3模型将某些列映射到不同的模型属性

我有一个名为“DXFTACCTS”的旧遗留表,我创建了Rails模型“Account”。 class Account < ActiveRecord::Base set_table_name "DXFTACCTS" end 问题是DXFTACCTS有像“XORFNAME”这样的字段,我希望它在模型中是“first_name”,依此类推。 如何将特定表列“映射”到模型属性? 谢谢!

query:has_many其中所有子字段都是nil

我正在使用Rails 3.2与ActiveRecord和MySQL,我有一对多关联的模型: class Author has_many :books end class Book belongs_to :author attr_accessible :review end 我想找到没有审查所有书籍的作者。 我试过了: Author.includes(:books).where(‘book.review IS NIL’) 但显然没有用,因为它找到的作者至少有一本书没有经过审查。 我应该使用什么查询?

从日期x开始尝试为记录创建rails模型范围查询,使用lambda?

我想我会想要使用模型级查找器和lambda。 named_scope :recent_snaps, lambda {|since_when| {:conditions=>{:created_at >= since_when}}} 但我不确定,如果我的语法正确,特别是参数片,并且无法立即运行应用程序来检查控制台。 我不想使用find_by_sql或控制器查找,我希望我的finder在模型级别进行rspec测试。

对存储在数组中的数据进行Ransack搜索(运算符不存在:整数 =整数)

我有一个Rails模型调用InfoData,它有一个名为error_codes的属性。 代码存储在类似[9,7,10,21](整数[])的数组中。 回顾一下 InfoData.first.error_codes => [9,7,5] 我尝试在其上使用ransack以搜索是否存在特定代码(通过选择选项)。 对于error_codes_in(_in ransack谓词),我收到以下错误 operator does not exist: integer[] = integer LINE 1: …ranch_id” WHERE “info_data”.”error_codes” IN (9) A… ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. 该如何修复?

ActiveRecord查询,按关联顺序,has_many的最后一个

我试图通过最近创建的关联的recored(通信)的created_at列列出所有用户 。 到目前为止我所拥有的: User.includes(:communications).order( ‘communications.created_at IS NULL, communications.created_at asc’ ) 事实上, desc工作正如我所料。 问题是当订单被撤销时我尝试订购asc 。 它似乎是因为用户可以有很多通信 ,查询按照创建的第一个通信而不是最新通信的顺序返回用户列表。 如何修改查询以定位asc和desc顺序中最近创建的关联记录? 谢谢你的时间。

Rails参与! 错误(无法批量分配受保护的属性:用户)

我正在安装Engage! 我按照此处的安装说明进行操作: http : //engagecsm.com/readme 我做的安装步骤: 添加Engage! 到应用程序的Gemfile:gem’integcsm’。 安装它:捆绑安装。 运行生成器:rails generate engage user。 运行迁移:rake db:migrate。 现在,我可以去localhost:3000 /搞 这是出现的: 现在,当我点击“创建主题”时,网站上没有任何反应。 我看看我的rails服务器控制台,我看到了这个:(更容易在这里查看http://i.stack.imgur.com/xKBER.png ,在底部找到完整的堆栈跟踪) “✓”,“authenticity_token” >“aRKQAwMsnc1DJJ62S6bb7EkhFkzuCDtNL0kV756LIP4 =”,“topic”=> {“style”=>“问题”,“标题”=>“ww”,“message”=>“www”,“follow”=>“1”}, “commit”=>“创建主题”}用户负载(0.3ms)SELECT“users”。* FROM“users”WHERE“users”。“id”= 1 LIMIT 1 Engage :: UserProfile Load(0.4ms)SELECT“engage_user_profiles “。* FROM”engage_user_profiles“WHERE”engage_user_profiles“。”user_id“= 1 LIMIT 1(0.1ms)begin transaction Engage :: UserProfile Load(0.3ms)SELECT”engage_user_profiles“。* FROM”engage_user_profiles“INNER JOIN”users“ON “engage_user_profiles”。“user_id”=“users”。“id”WHERE“users”。“id”= 1 LIMIT 1 SQL(1.2ms)INSERT INTO“engage_topics”(“comments_count”,“created_at”,“followers_count”, “message”,“private”,“status”,“string”,“style”,“title”,“updated_at”,“user_id”,“votes_count”)VALUES(?,?,?,?,?,? ,?,?,?,?,?,?)[[“comments_count”,0],[“created_at”,Sun,2013年1月20日02:48:26 UTC […]

在rails中获取关联的最后一个值

模型Price有一个属性数据,所以 Price.pluck(:data) 结果像[3.99,4.55,5.44] 而Price属于Vendor 所以我想为每个供应商选择最优惠的价格 Vendor.all.pluck(prices.order(“data ASC”).first.data) 在这种情况下,如何为每个供应商提取最低价格数据元素? 提前感谢您的帮助。