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上的第一篇文章,如果我犯了任何错误,我会提前道歉。 (我之前进行过广泛检查,看看是否涵盖了类似的主题,但是他们要么没有,要么我对术语的识别太熟悉了)
答案 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不必做任何事情。