Ruby on Rails多个搜索查询

时间:2013-06-27 09:15:28

标签: ruby-on-rails ruby

我必须在网站的主页上修改搜索。代码用Ruby语言编写,并使用“Rails”框架工作。

*** ******图像

enter image description here

此处,已经存在使用邮件ID进行搜索的选项。但也有一个id字段。需要实施多重搜索。

已编写“view”代码(MVC架构): -

 <form action="/users/search" method="POST">
   <label for="email">Email</label>
   <input type="text" name="email" />&nbsp;
   <input type="submit" name="search" value="Search" />
   <input type="hidden" name="authenticity_token" value="<%= form_authenticity_token %>" />
 </form>

已经编写了“控制器”(MVC架构)的代码: -

 def search 
    @users = User.paginate(
            :conditions => ["email LIKE ?", '%' + params[:email] + '%'], 
            :page => params[:page], :per_page => 25, 
            :order => params[:order].nil? ? 
            :email :  params[:order].gsub('-', ' ')
            )

   if @users.length == 1
     redirect_to edit_user_path(@users.first)
   else
     render "index"
   end
  end
  • 请帮助我在满足以下条件的控制器文件中使用条件进行多次搜索: -

  • 使用ID搜索

  • 使用电子邮件搜索(已写入)
  • 使用电子邮件和ID进行搜索

1 个答案:

答案 0 :(得分:2)

在视图部分

<form action="/users/search" method="POST">
       <label for="email">Email</label>
       <input type="text" name="email" />&nbsp;
       <label for="user_id">ID</label>
       <input type="text" name="user_id" />&nbsp;
       <input type="submit" name="search" value="Search" />
       <input type="hidden" name="authenticity_token" value="<%= form_authenticity_token %>" />
</form>

在搜索操作中

@users = User.paginate(
            :conditions => ["email LIKE ? or id = ?", '%' + params[:email] + '%', params[:user_id]], 
            :page => params[:page], :per_page => 25, 
            :order => params[:order].nil? ? 
            :email :  params[:order].gsub('-', ' ')
            )

它将使用ID,电子邮件和身份证或电子邮件搜索记录。