【问题标题】:RoR: Search Logic: How do I do a left join, instead of the default left inner join?RoR:搜索逻辑:如何进行左连接,而不是默认的左内连接?
【发布时间】:2011-08-09 12:56:58
【问题描述】:

我正在根据引用另一个表的字段进行排序(并根据该表的“名称”字段进行排序)。问题是,当我的第一组对象有一些条目没有对另一个的引用时,该条目被排除在排序之外。

所以.. 简而言之,我有一列是对另一个表的引用(并对该表中的列进行排序),但我也想包含空引用。

【问题讨论】:

    标签: ruby-on-rails searchlogic


    【解决方案1】:

    我不是 100% 确定我理解您的问题,但例如,当您编写 named_scope 时,您可以传递如下选项:

    named_scope descend_it_by_that_other_column, 
    :select => "",
    :joins => "LEFT JOIN ...", 
    :conditions => "..."
    

    另一个例子:

    def my_fancy_method_returning_things
     association_name.all :limit => 5, :joins => 'LEFT JOIN ... ON ... = ...', :order => ...'
    end
    

    【讨论】:

    • 啊,我没想过覆盖命名范围。我一会儿试试。谢谢。
    • 如果你使用 searchlogic 并且在你的参数中有这样的东西: "search" => { "order"=>"ascend_by_rating" } 那么如果定义了 searchlogic 将使用ascend_by_rating 命名范围。我希望这会有所帮助:)
    猜你喜欢
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多