이번에 만드는 테이블 중에 LessonData라는 이름의 테이블을 만들어야 했는데 이 경우에 Model 명을 어떻게 지어야 하는 지 헷갈렸다. 모델명이 LessonDatum이 되어야하는지 테이블 명이 LessonDatas가 되고 모델명이 LessonData가 되어야하는 지 헷갈렸는데 일단 결론부터 말하자면 테이블 명을 LessonData, 모델명을 LessonDatum으로 하는 것이 맞았다.
# Create the name of a table like Rails does for models to table names. This# method uses the +pluralize+ method on the last word in the string.## 'RawScaledScorer'.tableize # => "raw_scaled_scorers"# 'egg_and_ham'.tableize # => "egg_and_hams"# 'fancyCategory'.tableize # => "fancy_categories"deftableize(class_name)pluralize(underscore(class_name))end# Create a class name from a plural table name like Rails does for table# names to models. Note that this returns a string and not a Class (To# convert to an actual class follow +classify+ with +constantize+).## 'egg_and_hams'.classify # => "EggAndHam"# 'posts'.classify # => "Post"## Singular names are not handled correctly:## 'business'.classify # => "Busines"defclassify(table_name)# strip out any leading schema namecamelize(singularize(table_name.to_s.sub(/.*\./,'')))end
위의 코드와 같이 #tableize와 #classify를 이용하면 쉽게 네이밍할 수 있다.