前言: 項目中表單提交時,需要驗證敏感詞,如果提交的內容中包括敏感詞,則給出提示,不允許提交。
參考了:https://github.com/wear/harmonious_dictionary
1.gem名稱:
harmonious_dictionary
2. 在gemfile中添加,然後bundle installgem 'harmonious_dictionary'
3.創建必要的配置文件,會在config目錄下生成一個文件夾,裏面包含中文和英文過濾詞彙的兩個.txt文件rails g harmonious_dictionary:setup
4.step3創建的兩個txt文件是空白的,需要添加對應的敏感詞彙,請從
https://github.com/downloads/wear/harmonious_dictionary/dictionaries.zip 下載文件,直接覆蓋文件夾下的兩個txt文件,裏面是一些常用的敏感詞彙
後期可以自行添加。
5.生成序列化的詞庫
rake harmonious_dictionary:generate
將會生成 harmonious.hash 與 harmonious_english.yml 兩個文件。 到此,準備工作完成了,接下來開始使用:
1.與rails本身的model屬性驗證一樣,在對應的model中
validate_harmonious_of [:code, :name]
在提交表單的時候,即會驗證是否含有詞庫中的敏感詞,然後給出提示信息。(與model的屬性驗證並無二致)
2.此gem提供了三個方法用於手動驗證是含有敏感詞
- 檢查輸入是否包含敏感詞
HarmoniousDictionary.clean?(your_input)
- 檢查包含的敏感詞
HarmoniousDictionary.harmonious_words(your_input)
- 替換包含的敏感詞爲*
HarmoniousDictionary.clean(your_input)
ps:這是最基礎的用法,也可針對不同的model設置不同的敏感詞庫。