0

我为 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
4

1 回答 1

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
于 2012-05-04T06:27:38.860 回答