2009-09-08 2 views
1

특정 클래스의 객체를 편집 할 수있는 레일스 양식이 있습니다. 양식의 레이블은 편집중인 특정 개체에 따라 약간 달라야합니다.UI 텍스트를 Rails 모델 파일에 넣어도됩니까?

명백한 방법은 모델 개체에 인스턴스 메서드를 추가하여 해당 개체에 적절한 레이블을 반환하는 것입니다. 그러나이 뷰의 구현 일부를 내 Rails 프로젝트의 models 폴더에 넣는 것처럼 보일 것입니다.

더 좋은 방법이 있나요?

답변

1

내 일반적인 지침은 마크 업을 포함하지 않는 한 텍스트가 모델에 적합하다는 것입니다. 텍스트에 마크 업이 포함되어 있으면 도우미에 속합니다. 당신이 formtastic 같은 형태로 생성 플러그인을 사용하는 경우

1

내가 완전히 이해할 수 있을지 모르겠지만,이를 위해 도움을 줄 수있는 것처럼 보입니다.

+0

도우미가 작동 것이며, 그때는 매우 지저분 가져옵니다. – grahamparks

0

당신은 (당신이 영어 만있는 경우에도) 현지화 된 파일에있는 모든 라벨을 넣어 i18n guide를 참조 거기에서 다음 쿼리, 5.1 절

, 당신이 레이블을 정의 할 수

2. Add some cool label-translations/variants (config/locale/en.yml): 

    en: 
    formtastic: 
     labels: 
     post: 
      title: "Choose a title..." 
      body: "Write something..." 
     hints: 
     post: 
      title: "Choose a good title for you post." 
      body: "Write something inspiring here." 
0

이 가장 좋은 방법은 뷰 헬퍼를 사용하지 않을까요 : 및 (추가 정보)에서 파일을 마우스 오른쪽이 힌트를 형성?

예컨대 :

def modified_label_tag(obj, field); .... code to generate label_tag; end 

뷰에서 모델과 비즈니스 로직에서 표현 적 논리를 유지합니다.

무엇을 하든지 label_tag를 무시하지 마십시오!

하위 클래스가 있더라도 상관이 있습니까?

예컨대 : 나는 물체를 서브 클래스로 결정 때까지

label_class = case obj.class 
when SubClassOfModel 
'foo' 
... 
end 
관련 문제