2011-01-06 4 views
1

지금은 어떻게 레일 3.

사용자는 것에 루비를 사용하여 텍스트 영역에서 여러 마크 업 언어 (섬유, 가격 인하 및 BBCode는)를 처리하고 싶습니다 사용하려는 마크 업 언어를 선택하고 해당 언어로 작성한 다음 뷰는 사용자가 선택한 마크 업 언어를 사용하여 텍스트를 렌더링합니다.

저는 각 텍스트 영역에 필드를 저장하는 중입니다. 그러나 더 좋은 방법이있을 것이라고 확신합니다. 의견을 듣고 더 나은 방법을 찾고 싶습니다.

답변

1

사용자가 입력 한 마크 업을 처리하는 시점은 언제입니까? 그들은 그것을 다시 검색해야 할 것입니까? original_text, markup_language (다음 중 하나입니다 섬유, 가격 인하, 또는 BBCode는), 및 rendered_text :

나는 나의 모델에 대한 세 가지 특성을 가진하여이 작업을 수행 할 것입니다. 사용자가 저장을 클릭하면 텍스트를 저장하고 markup_language에 제공된 값을 사용하여 렌더러를 rendered_text에 저장하는 데 사용할 렌더러를 파악합니다.

+0

예, 사용자가 선택한 markup_language와 original_text를 다시 검색해야합니다. 나는 이미 렌더링 된 텍스트를 렌더링하기 위해 rendered_text를 사용하는 것을 좋아한다. 뷰에 매번 렌더링 할 것을 생각했다. 이 방법이 훨씬 좋습니다. 솔루션의 문제점은 많은 모델과 필드에서이 접근법이 필요하다는 것입니다. 사용하려는 각 필드에 대한 original_text, markup_language 및 rendered_text를별로 건조하지 않게 만드는 것이 좋습니다. 이 방법에 좀 더 DRY 방식으로 접근하는 방법은 무엇입니까? 아마도 필요한 모든 필드에 작은 모델 (MarkupText 모델)을 삽입 하시겠습니까? 그게 가능하니? –

+0

확실히 가능합니다 - 모델에 직접 입력하는 대신 각 필드에 대해 외래 키를 만들어야합니다. – girasquid

+0

감사합니다. 저는 그 해결책을 사용할 것입니다 : D –