如何在rails上的ruby中解析文本表单输入

时间:2012-01-31 02:18:55

标签: ruby-on-rails

我是rails程序员的新手ruby,如果这是一个愚蠢的问题,请原谅我... 我想知道如何在html表单提交后解析文本。简而言之,我正在建立一个推特剽窃作为个人项目。我有一个名为'micropost'的对象(基本上是一条推文),我想从中提取哈希标签。我有以下正则表达式来解析数组:

micropost.text.gsub(/ (#\w+)/) { |a| 
  ((a.include?('#'))) << a.strip.gsub(/#/, '') 
}
但是,我不太确定在哪里放置它?我应该把它放在微博的数据模型中吗?在微博助手?在微博控制器中?或者在表单的html.erb视图中。

非常感谢任何人提供的任何帮助!

1 个答案:

答案 0 :(得分:2)

我会创建一个函数并将其放在帮助器中,因为它似乎会在您的视图和控制器中使用它。 如果您决定采用这种方法,并且如果您想为特定控制器和视图(例如,microposts_helper)创建一个未被其他控制器和视图加载的帮助器,您可能需要添加以下行:

config.action_controller.include_all_helpers = false

到config文件夹中的application.rb文件。

最后,既然你是一个已经处理正则表达式的rails程序员的新手ruby,我建议你this site。这对我来说非常宝贵,作为rails程序员自己的新手ruby。

好的,所以在microposts_helper中,创建类似的内容:

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

然后你可以使用hash_tags(micropost.text)

在你的微博视图和控制器中调用它