2011-03-29 33 views
0

我有一個句子模型將包含在正文欄中的單個句子。每行只有一個句子是很重要的。但是,用戶可以在表單中輸入多個句子。不是問題。我其實想要鼓勵。過濾傳入數據

所以我需要做的是拆分句子,並保存每行只有一個句子。我能夠很容易地在控制器中執行此操作(一個簡單的.split(「。」)就可以做到這一點),但是這會在一段時間後變得有點不可維護。我真的覺得模型應該處理這個。

所以我在想什麼是做一些before_save鉤在我的句型模型,並在那裏做分割。顯然這也會造成一些問題。

有沒有更好的方法來做到這一點?

+1

確定分裂上''。''就足夠了?句子也可以用'!'和''?'結尾。 – 2011-03-29 06:53:50

+0

是的,我將不得不拆分多個不同的商標。但我正在處理的主要問題是我在哪個層面分割。但謝謝你指出。我很感激。 – 2011-03-29 15:09:10

回答

2

我會把它折射到一個類的方法,如:

半僞代碼:

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 

所以,你可以在你的控制器撥打:

Sentence.create_sentences_from_body(params[:text])