2011-03-29 3 views
0

본문 열에 단일 문장을 포함 할 문장 모델이 있습니다. 한 줄에 하나의 문장 만있는 것이 중요합니다. 그러나 사용자는 양식에 둘 이상의 문장을 입력 할 수 있습니다. 문제가 아니다. 나는 실제로 그것을 격려하고 싶다.들어오는 데이터 필터링

그래서 내가해야 할 일은 문장을 분할하고 행당 한 문장 만 저장하는 것입니다. 나는 컨트롤러에서 이것을 매우 쉽게 할 수있다. (단순한 .split (".")이 그것을 할 것이다.) 그러나 시간이 지나면 조금 유지 보수가 불가능해진다. 나는 모델이 이것을 처리해야한다고 정말로 느낀다.

그래서 내가 생각하고있는 것은 before_save 내 문장 모델에 훅을 넣고 거기에서 분할하는 것입니다. 분명히 그것 자체의 몇 가지 문제를 만듭니다.

더 좋은 방법이 있습니까?

+1

당신에게 확실 분할 위치 :

세미 의사 코드 :

class Sentence << ActiveRecord::Base def self.split_into_sentences(input) input.split(".") end def self.create_sentences_from_body(body) split_into_sentences(body).each{|s| Sentence.create(:body => s)} end end 

그래서 당신은 당신의 컨트롤러에서 호출 할 수 있습니다 에 충분할 것인가? 문장은 "!"과 "?"로 끝날 수 있습니다. –

+0

예, 여러 개의 다른 자국으로 나누어야합니다. 하지만 내가 다루고 있었던 주요한 부분은 어느 수준으로 나뉘 었는가이다. 그러나 그것을 지적 해 주셔서 감사합니다. 감사합니다. –

답변

2

나는 같은 클래스의 방법으로 그것을 굴절 것 :

Sentence.create_sentences_from_body(params[:text]) 
관련 문제