как разобрать ввод текста в ruby ​​на рельсах - PullRequest
0 голосов
/ 31 января 2012

Я новичок в программировании рельсов, так что простите, если это глупый вопрос ... Мне интересно, как разобрать текст после отправки формы HTML. Короче говоря, я создаю плагиат в твиттере как личный проект. У меня есть объект под названием «микросообщение» (в основном твит), из которого я хочу извлечь хеш-теги. У меня есть следующее регулярное выражение для анализа в массив:

micropost.text.gsub(/ (#\w+)/) { |a| 
  ((a.include?('#'))) << a.strip.gsub(/#/, '') 
}

однако, я не совсем уверен, где это разместить? Должен ли я поместить его в модель данных микросообщений? В микропочтой Хелпер? В контроллере микросообщений? Или в html.erb View для формы.

Большое спасибо за любую помощь, которую может предложить каждый!

1 Ответ

2 голосов
/ 31 января 2012

Я бы создал функцию и поместил ее в помощник, поскольку кажется, что вы будете использовать ее в своих представлениях и контроллерах. Если вы решите использовать этот маршрут и хотите создать помощника для определенного контроллера и представления (например, microposts_helper), которое не загружается другими контроллерами и представлениями, вы можете добавить эту строку:

config.action_controller.include_all_helpers = false

в файл application.rb, расположенный в папке config.

И, наконец, поскольку вы новичок в программировании на Rails, уже работающий с регулярными выражениями, я рекомендую вам этот сайт . Это было неоценимо для меня, как для начинающего программиста по рельсам.

Хорошо, поэтому в вашем microposts_helper создайте что-то вроде:

module MicropostsHelper  
  def hash_tags(string)
    string.gsub(/ (#\w+)/) { |a| 
      ((a.include?('#'))) << a.strip.gsub(/#/, '') 
    }
  end
end

И затем вы можете вызывать его в ваших представлениях микросообщений и в контроллере с помощью hash_tags(micropost.text)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...