2012-07-07 2 views
4

제 코드에 'cache'라는 문자열이 들어있는 모델이 있습니다. 예 :모델의 이름에 'cache'가 포함되어 있습니다.

class DataCache < ActiveRecord::Base 

이고 테이블 이름은 data_caches입니다. 내가 실행하면 :

"data_caches".classify.constantize.new 

모델을 초기화,이 같은 오류가 발생합니다 :

NameError: uninitialized constant DataCach 

하지 않는 이유는이 작품? 나는 "DataCache"를 얻었지만 "DataCach"를 얻었습니다.

답변

2

레일즈가이 경우 단수에서 복수로 변환하는 방법을 이해하도록 도와주십시오. 이 이름으로 config/initializers/inflections.rb을 업데이트하십시오. 나는 그것이 문제를 해결해야한다고 생각한다.

5

레일에서 Inflections 클래스를 살펴보십시오. config/initializers/inflections.rb 클래스에 다음 텍스트를 추가

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.irregular 'cache', 'caches' 
end 

을 이제 레일 콘솔에서 단어 시도 :

>> "caches".singularize 
=> "cache" 
>> "cache".pluralize 
=> "caches" 
관련 문제