: 난 그냥 알고, 이제레일 - 동적 메소드 작성 나는 그들이 참조하는 액티브 클래스에서 떨어져 동일한 두 가지 방법이
def category_id_find(category_name)
category = Category.find_by_name(category_name)
if category != nil
return category.id
else
return nil
end
end
def brand_id_find(brand)
brand = Brand.find_by_name(brand)
if brand != nil
return brand.id
else
return nil
end
end
몇 가지로이 결합보다 Railsy/루비 방법이 있어야합니다 가지 두 개의 인수, 클래스와 찾을 수있는 문자열을 사용하는 방법을 동적으로 생성, 그래서 나는이 같은 뭔가 시도 (실패) :
def id_find(class, to_find)
thing = (class.capitalize).find_by_name(to_find)
if thing.id != nil
return thing.id
else
return nil
end
end
내가 부를 수있는 의미 id_find(category, "Sports")
모든 데이터가 포함 된 하나의 몬스터 CSV 파일에서 시드하는 동안 테이블을 채워야합니다. 예를 들어, CSV에서 모든 고유 한 카테고리를 가져 와서 범주 테이블에서 펀치 한 다음 각 항목의 category_id를 해당 ID가있는 경우 채워진 카테고리 테이블의 ID를 기반으로 할당해야합니다.
thing = passed_in_class.constantize.find_by_name(to_find)
그러나 당신은 또한 방법에 이유를 실제 클래스 자체를하지에 전달할 수 :
constantize - 내 gogole-fu는 반드시 내가 원하는 것을 고쳐야합니다. - 감사합니다! – BenjiBoyWick