【问题标题】:Rails search methodRails 搜索方法
【发布时间】:2016-03-25 11:02:28
【问题描述】:

我试过用sql写一个简单的搜索方法,到现在都写了这个;

User.where("username LIKE '#{input}'")

输入变量是“adam”,但是我不想找到等于“adam”的用户名我想找到包含“adam”或包含字母“a”等的用户名......我想知道我将如何去做?我对sql查询不是很熟悉。

谢谢

【问题讨论】:

    标签: mysql sql ruby-on-rails


    【解决方案1】:

    你可以用这个:

    User.where("username LIKE '%#{input}%'") 
         OR
    User.where("username like ?","%name%")
    

    【讨论】:

    • 只找到与输入相同的用户名,是否可以找到用户名中包含字母“ada”的用户,并找到用户名中包含字母“ada”的用户。
    • @AdamParker 带有 '%' 字符,它将完全按照您的要求进行搜索。
    【解决方案2】:

    如果您创建方法然后转到模型页面,然后按照以下结构进行操作:

     def self.username(username)
       if username
         where("username LIKE ?", "%#{username}%")
       else
         all
      end
     end
    

    或者只创建如下控制器:

    User.where(["username LIKE ? ", "%#{params[:username]}%"])
    

    我想对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-05
      • 1970-01-01
      相关资源
      最近更新 更多