2

0. 要点

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

例如 "A" 、 "B" 、 "C" 是 Rails 形式的每个输入,它们将被连接并读入:string_field => "ABC"

1. 背景

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

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

FOO
O■U
BAR

...应该有一个:letters属性"FOOO_UBAR"(字符串代表从左到右,从上到下阅读的拼图)。

2.问题

用户首先指定拼图的大小(行 x 列)来创建拼图。这将创建一个该大小的空白拼图,每个单元格都是一个空白的 HTML 输入元素。然后用户可以在空白单元格中输入适当的字母并构建他们的拼图。

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

任何帮助将非常感激。

PS 因为这是我在 StackOverflow 上的第一篇文章,如果我犯了任何错误,我提前道歉。(我之前广泛检查过是否涵盖了类似的主题,但他们要么没有,要么我对术语太不熟悉而无法识别它们)

4

1 回答 1

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 不需要做任何事情。

于 2013-01-13T18:18:50.923 回答