add shoulda matcher gem
refactor test and fix foreword field type from string to text