2012-12-07 1 views
8

私は、選択された値のparam値と都市からそれらの名前が始まる検索を選択するタスクを持っていました。どのようにレール上でルビーに設定できますか? 私はこのようでしたが、これはあなたの方法にエラーがあるRubyでのSQLのようなオペレータ

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

答えて

10

てみてくださいようにする必要があります。

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

これはむしろ汚れた解決策ですが、純粋なARelでは、このようなケースをあなたが望むように処理することはできません。 Sqeel gemをお試しください。

+0

ご支援いただきありがとうございます。 – Niths

+0

cityid == 0のif文を書くのを手伝ってもらえますか? – Niths

2

が動作していない、それはこの

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

これは、*で始まるものではなく、値で終わる*ことを確認します。 – sevenseacat

+0

ありがとう私は答えを編集しました。 –

0

を試してみてください コントローラ

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 
関連する問題