rails将粘贴的代码分解为行和显示

时间:2010-02-26 02:22:46

标签: ruby-on-rails ruby forms string

假设我有一个rails应用程序,其代码粘贴到内容文本框中,如下所示。

粘贴代码

Person name
Person name
Person name
Person name

根据我的服务器日志,在每行之后使用适当的新行将其放入数据库。

我想要做的是在show动作中我想在删除名称之间的任何空格后输出此文本并删除任何双重名称并按字母顺序排列。

我还想在它们周围添加一个html选项标记。

我已经使用Java编写了一个用Java编写的程序。我想知道如何在rails中处理这个问题。我会假设执行此操作的代码将进入控制器。

我的第二个问题是在索引行动中。它显示所有粘贴的项目。我怎样才能显示实际粘贴的内容片段。可以说20个字符长吗?谢谢!

1 个答案:

答案 0 :(得分:1)

  

删除名称之间的任何空格

不知道'之间的空格'是什么意思,但我想你想删除'空行':

lines = code.split(/\n\r?/).reject { |l| l.strip.empty? }
  

删除所有双重名称

lines = lines.uniq # or uniq!
  

按字母顺序排列

lines = lines.sort # or sort!
  

在它们周围添加一个html选项标记

options_str = lines.map { |l| "<option value='#{l}'>#{l}</option>" }.join('\n') # Do not forget to escape html

或者如果你想缩短它:

code.split(/\n\r?/).reject { |l| l.strip.empty? }.uniq.sort.map do |l|
  "<option value='#{l}'>#{l}</option>"
end.join('\n')

那应该给你一个提示。

对您来说最重要的事情可能是在您面前提供StringArrayEnumerable文档。