在轨道上的ruby中的SQL Like运算符

我有一个任务来选择搜索学生那些名字以param值和所选值的城市开头。我如何在轨道上设置ruby? 我确实喜欢这个,但这不是控制器

def list studentcount=Student.count() puts studentcount @studentname = Student.where("name name1 AND city = :cityId1", {:name1 => params[:name], :cityId1 => params[:cityId]}) puts 'studentname' puts @studentname.inspect @students = Student.limit(params[:jtPageSize]).offset(params[:jtStartIndex]).order(params[:jtSorting]) @jtable = {'Result' => 'OK','Records' => @students.map(&:attributes), :TotalRecordCount => studentcount} respond_to do |format| format.html # index.html.erb format.json { render :json => @jtable} end end 

尝试:

 @studentname = Student.where("name LIKE :name1 AND city = :cityId1", {:name1 => "#{params[:name]}%", :cityId1 => params[:cityId]}) 

这是一个相当肮脏的解决方案,但纯粹的ARel无法按照您的方式处理这种情况。 您可能想尝试Sqeelgem。

尝试

 @studentname = Student.where("name LIKE ? AND city = ?", "#{params[:name]}%", params[:cityId]) 

你的方法有一个错误,它应该是这样的

  @studentname = Student.where("name = :name1 AND city = :cityId1", {:name1 => params[:name], :cityId1 => params[:cityId]})