草庐IT

ordering-filters

全部标签

ruby-on-rails - 错误 : SELECT DISTINCT ON expressions must match initial ORDER BY expressions

我的要求是得到不同的记录并按顺序User.joins('INNERJOINreport_postsONposts.id=report_posts.post_id').select('DISTINCTON(report_posts.post_id)posts.idasreport_posts.idasreported_id,report_posts.reported_at').order('report_posts.reported_atdesc')我知道这在postgresql中是不可能的,我已经读过这个PostgresqlDISTINCTONwithdifferentORDERBY我

sql - 在 SQL 和 Sequel 中需要帮助,涉及内部连接和 where/filter

需要帮助将sql传输到sequel:查询语句:SELECTtable_t.curr_idFROMtable_tINNERJOINtable_cONtable_c.curr_id=table_t.curr_idINNERJOINtable_bONtable_b.bic=table_t.bicWHEREtable_c.alpha_id='XXX'ANDtable_b.name='Foo';卡在续集里了,不知道怎么过滤,就这样了:cid=table_t.select(:curr_id).join(:table_c,:curr_id=>:curr_id).join(:table_b,:bic=

ruby-on-rails - Group by 和 order by 在 Rails 中有很多直通模型

您好,我已经搜索过了,但还没有找到执行此操作的方法我有以下模型:classHierarchy.classFamily:hierarchiesend.classUser:hierarchiesend有了current_user,我需要获取他的所有其他家庭成员,按级别分组,然后按列顺序排序。我会说出我尝试过的,但实际上并没有那么多,而且这个查询超出了我的能力范围。我正在使用postgres。 最佳答案 我会采用以下方法..我们必须更新用户模型:)classUser:hierarchieshas_many:family_members,-

ruby-on-rails - rails : Order a model by the last element of a has_many association

我有两个模型:User和Message,它们通过has_many关系连接。我想获得一个users列表,按他们上一条消息的时间戳排序。classUser当我这样做时:@users=User.includes(:messages).order('messages.created_atDESC').limit(5)它似乎对消息进行排序,获取最新的5条消息,然后返回与这些消息关联的用户。所以用户数可以少于5个。我想确保获得5个用户。我希望查询为每个请求获取最新消息,对最后的消息进行排序,然后将最新消息返回给用户。所以我想要这样的东西:@users=User.includes(:messages

ruby-on-rails - 目标方法的名称是否在 before_filter 中可用

有没有办法让目标方法的名称在前置过滤器中可用。比如我有如下代码before_filter:logindefshow#...enddeflogin#...#getthenameofmethodoriginalcalled#...endhttp:///show被调用,随后调用登录我能得到一个show吗?字符串或类似的东西,这样我就可以将指令传递给实际发生在不同Controller上的登录,以返回到原始目标方法 最佳答案 您可以简单地从参数中获取操作:params[:action] 关于rub

ruby /事件记录 : custom sorting order

我正在开发一个Rails3.2ruby​​1.9.2项目。我从经典数据库中获取了一些值:designators=Model.find()我用(简化代码)显示它:">值例如:3L、3C、3R。(L代表左,C代表中心,4代表右)。我想要订购的值,例如:3L、3C、3R而不是3C、3L、3R我不知道如何定义这个自定义顺序。有什么想法吗? 最佳答案 尝试这样的事情:(app/models/designator.rb)#determinesthesortvalueforbasedonmy_attribute.#designatorsshoul

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 - Rails:ParameterFilter::compiled_filter 尝试复制符号

我正在使用railsexception-notifiergem运行rails3。当发生异常并且应该发送电子邮件时,我从ParameterFilter类中得到一个异常。我在Rails源代码中发现了问题,但我不确定继续的最佳方式。问题出现在ActionDispatch::Http::ParameterFilter。在compiled_filter方法中,第38行报错:key=key.dupwhenkeyisasymbol,因为symbols是不可复制的。这是来源:defcompiled_filter...elsifblocks.present?key=key.dupvalue=value.

ruby-on-rails - 如何限制 current_user 每个时间段向订单添加超过 3 个 order_items?

我正在使用Rails建立一个具有特定销售模式的商店。我需要允许用户每30天只向他的订单添加3件商品。30天计数器应在添加第一个order_item时开始。一旦30天到期,用户将能够添加3个订单。例如,如果30天没有过去,用户添加了两个order_items,他仍然可以在30天内再添加一个order_item。因此,如果用户尝试添加超过3个项目以显示错误消息并忽略将order_items保存到current_user的订单。我有产品、订单、order_items、用户。我想我应该向用户模型添加一些东西,但我不确定是什么。order_items_controller.rbdefcreate

ruby - 为 ordered_vowel_words 实现一个方法

我已经复习了许多编码面试问题中的一些问题。我想知道如何实现一个ordered_vowelwords方法。为了理解算法,我正在研究算法问题以实现此方法。我有以下内容:此方法接受一串小写单词并返回一个字符串,其中仅包含按字母顺序排列的所有元音(不包括“y”)的单词。元音可以重复("afoot"是一个有序的元音词)defordered_vowel_words(str)words=str.split("")ordered_vowel_words=words.selectdo|word|ordered_vowel_word?(word)endordered_vowel_words.join(""