2012-12-07 22 views
8

Ben seçilen değer içinde param değeri ve şehir ile bu adı başlatmak başlangıç ​​öğrencileri aramak için bir görev var.Nasıl raylarda ruby ​​olarak ayarlayabilirsiniz? ben böyle yaptım ama bu kontrolörüSQL Gibi raylar üzerinde yakut operatörü gibi

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 

cevap

10

deneyin gibi olmalıdır, sizin yöntemlerde bir hata var

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

Desteğiniz için teşekkürler .. – Niths

+0

Eğer cityid == 0 ifadesini yazmam için bana yardımcı olabilir misiniz? – Niths

2

bu

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

Bu, * ile başlayan * adın, değerle başlayıp, onunla başlamayacağından emin olur. – sevenseacat

+0

Teşekkürler cevap düzenledim. –

0

deneyin çalışmıyor:

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

Bu oldukça kirli bir çözümdür, ancak saf AREL bu davayı istediğiniz gibi ele alamaz. Sqeel gemini denemek isteyebilirsiniz.

İlgili konular