2012-02-27 3 views
2

앱이 경로의 변수 이름을 기반으로하는 레코드 수를 반환합니다. 따라서 "Person"모델과 "Car"모델 (또는 다른 수의 모델)이 있으면 변수에 할당하고 결과를 얻을 수 있기를 원합니다.RoR을 사용하여 앱에서 변수 모델 이름을 허용해야합니다.

@model = params[:model] 
@model.find(:all).count 

을 나는 오류를 얻을 :

나는 해봤 어떤 도움

undefined method `find' for "Person":String 

감사합니다!

+3

참고로, Person.find (: all) .count 대신'Person.count'를 실행해야합니다. 첫 번째 방법은'select count (*)'를 사용하고 두 번째 방법은 전체 테이블을 메모리로 쿼리합니다. – meagar

답변

5

이 시도 :

@model = params[:model].constantize 
@model.find(:all).count 

Constantize는 상수에 문자열을집니다.

+0

감사합니다! 그게 효과가! – astuttle

+0

당신을 진심으로 환영합니다! 이 답변을 답변으로 표시하여 동일한 질문을 가진 다른 사람들이 답변을 한 눈에 성공적으로 답변했음을 알 수 있도록하십시오. – MrDanA

관련 문제