【问题标题】:Rails: Searching multiple tables from one queryRails:从一个查询中搜索多个表
【发布时间】:2010-10-13 18:26:06
【问题描述】:

如何在findpaginate方法中编写条件语句以允许用户同时搜索ProjectProject Category名称?

现在我的代码是这样的

@projects = Project.paginate :per_page => 20, :page => params[:page], :conditions => ['name LIKE ?', "%#{params[:search]}%"]

所以我还有Category 表和name 字段。如何在此搜索查询中将这两个 names 组合在一起?

【问题讨论】:

    标签: ruby-on-rails search


    【解决方案1】:

    我愿意:

    @categories = Category.find :conditions => ["name like ?", "%#{params[:search]}%"]
    

    拼接@projects和@categories,然后将结果作为最终的搜索结果列表。

    【讨论】:

      【解决方案2】:

      假设您的Project 模型has_many :categories

      @projects = Project.paginate :per_page => 20, :page => params[:page], :joins => :categories, :conditions => ['projects.name LIKE ? OR categories.name LIKE ?', "%#{params[:search]}%", "%#{params[:search]}%"], :order => 'projects.id DESC'

      根据需要更改上面的:order

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-26
        • 1970-01-01
        • 1970-01-01
        • 2020-06-12
        • 1970-01-01
        相关资源
        最近更新 更多