2013-02-05 2 views
1

짹짹 to 은별로 중요하지 않습니다. 그리고 국번개국이 될 것입니다. 심지어 Cactuscacti (내가 틀렸다면 나에게 정정해라.Rails가 테이블을 올바르게 복수화해야한다고 생각합니까?

만약 내가 수업을 가지고 있다면 바나나? 나는 그것의 테이블을 barnabuss, barnabi 또는 barnabusses라고 부릅니까? 어떨까요 zxzzy? 영어가 아닌 단어는 어떻게 처리됩니까? 탈지면 화 및 복수화를 무시할 수있는 지저분한 옵션이 있습니까?

필자는 레일스에 익숙하지 않으며 수정 된 테이블 이름을 사용하기에는 약간의 차이가 있습니다. 관련 문서에 대한 링크가 제공됩니다. 테이블 이름에 대한 홀수 예외를 이해하기 위해 This is the only documentation I have seen relevant to this, and its not helpful.

이것이 이미 다루어지면 나를 용서해주십시오. 내가 얻은 결과는 정확히 내가 알아 내려고 시도한 것이 아닙니다.

답변

1

대부분의 경우 신뢰할 수 있지만 어색한 복수형이있는 의심스러운 모델 이름이있는 경우 모델에 항상 테이블 이름을 지정할 수 있습니다. 예 :

class SomeName < ActiveRecord::Base 
    self.table_name = 'any_name' 
end 
6

String#pluralize은 영어에 대한 다소 단순한 일반 규칙을 기반으로 휴리스틱을 사용하고 알려진 몇 가지 일반적인 예외를 추가합니다.

ActiveSupport::Inflector을 사용하면 동작을 사용자 정의 할 수 있습니다. Rails 프로젝트의 경우 굴곡 구성은 config/initializers/inflections.rb에서 찾을 수 있습니다.

barnabi 테이블이있는 Barnabus 모델을 만들려면 일부 inflections.rb 콘텐츠의 주석 처리를 제거하고이 단어를 처리하는 방법을 Rails에게 명시 적으로 알려줘야합니다.

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.irregular 'barnabus', 'barnabi' 
end 

P. 편집을 위해 Holger Just에게 감사드립니다.

0

뷰에서 복수화가/오류 메시지가 레일 까다로운 테이블 이름을 복수화로 화려 실패 상황에 관심이 있다면 당신은 앱에 일부 현지화를 추가 할 수 있으며 그것은 다양한에서 사용할 무엇을 말해 문맥.

activerecord: 
    models: 
     barnabus: 
     zero: Barnabi 
     one: Barnabus 
     few: Barnabi 
     other: Barnabi 
: 여기에 행동 복수화 규칙의 예 http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models

보기

관련 문제