1

토마토, 콩, 스쿼시와 같은 작물을 다루는 앱이 있습니다.앱 실행 중 굴절을 추가하는 방법은 무엇입니까?

  • 한 콩, 많은 콩
  • 한 토마토 많은 토마토
  • 한 스쿼시, 많은 스쿼시

는 작물의 일부는 예를 들어, 매우 이상한 복수 형태가있다. 당신은 "마늘 한마리"를 골라 먹지 않습니다. 일부는 거의 단수로 언급되지 않는다. "귀리"- 당신은 "귀리"를 심지 않습니다.

"Bob은 3 토마토를 심었습니다"또는 "Mary는 3kg의 귀리를 수확했습니다."와 같은 문장에서이 단어를 사용합니다.

그래서 우리는 몇 가지 특수한 경우를 구성하기 위해 레일즈 굴절기를 사용하고 싶습니다. 그러나 우리는 작물에 관한 다른 정보와 함께이 세부 사항을 데이터베이스에 저장하려고합니다. 사용자는 레코드를 업데이트하여 단수 또는 복수 형식을 올바르게 나열 할 수 있습니다.

inflector 사용법을 읽었지만 모든 것이 config/어딘가에 구성되도록 제안합니다. 즉, 변경 사항을 적용하려면 앱을 다시 시작해야합니다. 변경 될 때 데이터베이스에서 새로운 굴절 정보를 가져 오는 방법은 무엇입니까?

우리는 Rails 3.2를 사용하고 있지만 필요하다면 Rails 4 답변을 환영 할 것입니다. 어쨌든 빠른 시일 내에 업그레이드 될 가능성이 있기 때문입니다.

답변

0

데이터베이스에서 자르기를로드 할 때 '굴절'싱글 톤을 사용하여 규칙을 동적으로 정의 할 수 있습니다. ... 당신은 속성 plural의 속성 singular 복수의 단수형을 저장 가정

class Crop < ActiveRecord::Base 
    after_find do |crop| 
    ActiveSupport::Inflector.inflections.plural(crop.singular, crop.plural) if crop.singular 
    end 
    ... 
end 

물론 당신은 그냥 평소와 복수형 방법을 사용

...

ActiveSupport::Inflector.inflections.plural("beatle", "mopheads") 

p "beatle".pluralize 
=> "mopheads"