0

첫 번째 레일 프로젝트에서 작업 중이며 올바르게 작동하려면 쿼리를 처리하는 데 문제가 있습니다. 내 전반적인 목표는 여러 옵션을 사용하여 긴 쿼리를 만들 수있는 범위의 컬렉션을 설치하는 것입니다. 그러나 처음부터 단일 모델에서 단일 열을 쿼리하기 위해 단일 범위를 설정하려고합니다. 여기컨트롤러에서 레일스 범위 쿼리 사용

class Drawing < ActiveRecord::Base 
    has_many :revisions 
    scope :by_description, lambda { |description| where(description: description) unless   description.nil? } 
end 

내 컨트롤러의 색인 작업입니다 : 여기 내 모델이다

def index 
    @drawings = Drawing.by_description(params[:description]).all 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @drawings } 
    end 
    end 

그리고보기는 레일의 기본 색인이다.

"Case"와 같이 입력란에 입력을 입력하면 제출 단추가 작동하고 나를 인덱스보기로 안내하지만 "그림"이있는 항목 대신 모든 "그림"이 나열됩니다. 사례 "를 설명합니다. 도와 줘서 고마워.

Started GET "/drawings?utf8=%E2%9C%93&drawings%5Bdescription%5D=Case&drawings%5Bdrawing_number%5D=&drawings%5Bitem_number%5D=&drawings%5Bpump_model%5D=&drawings%5Bframe_size%5D=&drawings%5Bpart_type%5D=&drawings%5Bcreated_before%281i%29%5D=&drawings%5Bcreated_before%282i%29%5D=&drawings%5Bcreated_before%283i%29%5D=&drawings%5Bcreated_after%281i%29%5D=&drawings%5Bcreated_after%282i%29%5D=&drawings%5Bcreated_after%283i%29%5D=&commit=Search" for 127.6.43.1 at 2013-08-31 11:39:28 -0400 
Processing by DrawingsController#index as HTML 
    Parameters: {"utf8"=>"✓", "drawings"=>{"description"=>"Case", "drawing_number"=>"", "item_number"=>"", "pump_model"=>"", "frame_size"=>"", "part_type"=>"", "created_before(1i)"=>"", "created_before(2i)"=>"", "created_before(3i)"=>"", "created_after(1i)"=>"", "created_after(2i)"=>"", "created_after(3i)"=>""}, "commit"=>"Search"} 
    [1m[36mDrawing Load (0.3ms)[0m [1mSELECT "drawings".* FROM "drawings" [0m 
    Rendered drawings/index.html.erb within layouts/application (6.0ms) 
Completed 200 OK in 226ms (Views: 186.8ms | ActiveRecord: 0.3ms) 
+0

서버 로그 범위에서 생성 된 데이터베이스 쿼리를 출력한다의

, 당신은 그것을에 붙여 넣을 수 있습니다? – mbaird

+0

빈 입력을 보내면 어떻게됩니까? "Drawing"이 모두 나열되어 있습니까? – Bala

+0

예, 빈칸을 포함한 입력을 보내면 모든 도면이 나열됩니다. – sabrams

답변

2

params 객체를 파라미터가 잘못 : 여기

가 생성되는 SQL은 추가 설명 매개 변수를 포함하지 않는 당신이 볼 수있는, 적용되는 개발 로그 파일의 섹션입니다. 대신

params[:description] 

사용

params[:drawings][:description] 
관련 문제