Rails - 将多个HTML输入的内容转换为单个字符串

时间:2013-01-13 08:47:26

标签: ruby-on-rails forms field textinput string-concatenation

0。要领

使用Rails表单和输入,如何将大量文本输入连接到一个字符串属性?

e.g。 “A”,“B”,“C”是Rails表单中的每个输入,它们将被连接并以:string_field => "ABC"

的形式读入

1。背景

我正在制作一个允许用户制作自己的填字游戏的应用程序。这些谜题是我的CrosswordPuzzle类的成员,其中:letters属性(一个字符串)描述了拼图中字母和黑色空格的布局。

例如,3x3拼图如下......

FOO
O■U
BAR

...的:letters属性应为"FOOO_UBAR"(字符串代表从左到右,从上到下读取的拼图)。

2。问题

用户首先指定拼图的大小(行x col)来创建拼图。这会创建一个该大小的空白拼图,每个单元格都是一个空白的HTML输入元素。然后,用户可以在空白单元格中键入相应的字母并构建其拼图。

我不明白该怎么做才是采取所有这些单独的单字符输入并让Rails解释它们或在我提交编辑表单时将它们更改为拼图的单个:letters属性。此外,由于拼图可能具有不同大小和不同数量的单元格,因此答案需要是可扩展的,以便可以将100-600个输入元素读入单个100-600字符串。

非常感谢任何帮助。

P.S。由于这是我在StackOverflow上的第一篇文章,如果我犯了任何错误,我会提前道歉。 (我之前进行过广泛检查,看看是否涵盖了类似的主题,但是他们要么没有,要么我对术语的识别太熟悉了)

1 个答案:

答案 0 :(得分:1)

配置表单,以便每个文本输入都有一个名称cell[?],其中?是一个基于零的数组索引。因此,cell[0]cell[1]等等.Rails会将所有这些转换为单个参数条目cell,这将是一个数组。然后,加入他们。

跳过铁轨...就像这样。

1.8.7 > a = []
 => [] 
1.8.7 > a[0] = 'f'
 => "f" 
1.8.7 > a[1] = 'o'
 => "o" 
1.8.7 > a[2] = 'o'
 => "o" 
1.8.7 > a[3] = 'o'
 => "o" 
1.8.7 > a
 => ["f", "o", "o", "o"] 
1.8.7 > a.join
 => "fooo" 
1.8.7 > 

或者......做同样的事情,但是在客户端使用javascript,将结果填充到隐藏的字母“'领域,然后Rails不必做任何事情。