我必须在网站的主页上修改搜索。代码用Ruby语言编写,并使用“Rails”框架工作。
*** ******图像
此处,已经存在使用邮件ID进行搜索的选项。但也有一个id字段。需要实施多重搜索。
已编写“view”代码(MVC架构): -
<form action="/users/search" method="POST">
<label for="email">Email</label>
<input type="text" name="email" />
<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搜索
答案 0 :(得分:2)
在视图部分
<form action="/users/search" method="POST">
<label for="email">Email</label>
<input type="text" name="email" />
<label for="user_id">ID</label>
<input type="text" name="user_id" />
<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,电子邮件和身份证或电子邮件搜索记录。