2013-03-13 1 views
0

위치가 4 개인 위치 테이블이 있습니다.레일스 활성 레코드에서 예상 한 결과를 반환하지 않습니다.

create_table "locations", :force => true do |t| 
    t.string "name" 
    t.string "address" 
    t.string "city" 
    t.string "state" 
    t.string "zip" 
    t.datetime "created_at", :null => false 
    t.datetime "updated_at", :null => false 
    end 

내가 아약스 호출이 실행하고있어 그 아래에있는 내 박았 라인에 Location를 반환 유지 : 다음과 같이 스키마입니다. 실제로 로그 파일에서이 쿼리를 찾는 아니에요

'brooklyn park'

@current_location = Location.where('lower(name) = ?', params[:id][1..-1].humanize.downcase)  
p "@current_location = #{@current_location}" 

params[:id][1..-1].humanize.downcase는 해석하고 내가 복사 레일 콘솔에 활성 기록을 붙여 넣을 때, 그냥 잘 작동하는 것 같다.

왜 계속해서 'Location'이 반환됩니까?

+0

당신은 이름'id'에 위치 이름 매개 변수를 전달하고 있는지와

@current_location = Location.where('lower(name) = ?', params[:id][1..-1].humanize.downcase) 

? 쿼리가 작동한다고 지적 했으므로 이것은 활성 레코드 문제가 아닙니다. 올바른 매개 변수를 전달하는 문제입니다 (자바 스크립트 및 컨트롤러 로직). – bdares

+0

예. 그 params 물건을 꺼내서 거기에''브루클린 파크 ''를 넣을 때에도 여전히 @current_location을 'Location'에 설정합니다. – Catfish

+0

@jvnill 무슨 뜻입니까? – Catfish

답변

1

는 교체

@current_location = Location.where('lower(name) = ?', params[:id][1..-1].humanize.downcase).first 
+0

왜 이것이 작동하는지 그리고 왜 처음에는 '위치'로 설정했는지에 대해 자세히 설명해 주실 수 있습니까? – Catfish

+0

'.first'가 없으면 콜렉션이고'.first'는 콜렉션의 멤버입니다 – shweta

+0

의미가 있습니다 만 왜 'Location'으로 설정하겠습니까? – Catfish

관련 문제