代码之家  ›  专栏  ›  技术社区  ›  Trip

太阳黑子索尔能通过嵌套的属性过滤你吗?

  •  1
  • Trip  · 技术社区  · 15 年前

    假设我有人,人们有很多西瓜。

    我有一个过滤器,它可以用于人员属性,例如:

    :filter_by => 'has_eaten_today'
    

    但我能做吗? :filter_by 对于西瓜的嵌套属性?例如:

    :filter_by => 'watermelons.created_at'
    

    谢谢!

    1 回复  |  直到 15 年前
        1
  •  2
  •   Trip    15 年前

    这个问题来源于我对太阳黑子索尔不是很了解,但很容易。

    只针对模型中的嵌套属性:

    def watermelon_time
      self.watermelon.created_at
    end
    

    然后把它加到

    searchable do
      time :watermelon_time
    ..
    

    然后我的控制器:

    query.with(:watermelon_time).equal_to(params[:filter_by] == 'watermelon_time' ? 'true' : false) if params[:filter_by]
    

    额外奖励:

    添加了一个链接,将此功能写入我的:

    = link_to 'Watermelon Time', url_for(:overwrite_params => { :filter_by => 'watermelon_time', :page => nil })
    

    食欲!

    推荐文章