【问题标题】:Modifying simple search in rails to search linked data?修改 Rails 中的简单搜索以搜索链接数据?
【发布时间】:2011-06-08 18:24:34
【问题描述】:

我跟随:http://railscasts.com/episodes/37-simple-search-form(尽管是更新版本)在我的应用程序上实现搜索。

现在当您搜索时,它会搜索 1 个表。如果该表链接到另一个表或连接表怎么办?有没有办法让它也搜索这些字段。

我这么说是因为目前我正在让它从一个表中搜索字段:

def self.search(search)
    if search
      where('LOWER (description) LIKE ? OR LOWER (title) LIKE ?', "%#{search}%" , "%#{search}%")
    else
      scoped
    end
  end

但我真的很希望它也能搜索链接表。有什么想法吗?

【问题讨论】:

    标签: mysql ruby-on-rails ruby ruby-on-rails-3


    【解决方案1】:

    是的,您可以将连接添加到查找中

    # models/project.rb
    def self.search(search)
      if search
        find(:all, :joins => :other_model, :conditions => ['projects.name LIKE :search or other_models.name LIKE :search', {:search => "%#{search}%"}])
      else
        find(:all)
      end
    end
    

    好的,这将是未来的一个更好的例子

      def self.search(search)
          if search
            joins(:other_model).where('LOWER (projects.description) LIKE ? or LOWER (other_models.name) LIKE ?', "%#{search}%", "%#{search}%")
          else
            scoped
          end
        end
    

    【讨论】:

    【解决方案2】:

    你可以看看 searchlogic(它在 github 上有一个 rails 3 分支),它让搜索变得更容易!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-04
      • 2014-09-17
      • 1970-01-01
      • 1970-01-01
      • 2015-07-16
      • 2014-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多