1

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

***图片******

在此处输入图像描述

在这里,已经有一个使用邮件 ID 进行搜索的选项。但是也有一个 id 字段。需要实现多重搜索。

已经编写好的“视图”代码(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 搜索
4

1 回答 1

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、email 和 id 或电子邮件搜索记录。

于 2013-06-27T09:37:56.470 回答