我为Rails应用程序创建了一个简单的搜索输入表单,但我注意到当我不输入任何内容时它会返回所有用户的结果,但我不希望它在没有值时放置
我的表格
<h6>Search for Friends</h6>
<form action ="users/search" method="post">
<input name = "key" type="input" />
<input value="Search" type="submit"/>
</form>
控制器方法
def search
@users = User.find(:all,:order => 'username', :conditions => ["username LIKE ?", "%#{params[:key]}%"])
end
答案 0 :(得分:1)
尝试新的Arel写入或检查密钥是否已分配。
def search
@users = User.where(["username LIKE ?", "%#{params[:key]}%"]).order('username')
end
或
def search
if params[:key].blank?
@users = []
else
@users = User.where(["username LIKE ?", "%#{params[:key]}%"]).order('username')
end
end