Ruby on rails 3 如何从rails中的文本区域填充多个字段?
我的模型有四个字段。所以对于数据输入,我通常会这样做Ruby on rails 3 如何从rails中的文本区域填充多个字段?,ruby-on-rails-3,Ruby On Rails 3,我的模型有四个字段。所以对于数据输入,我通常会这样做 <%= form_for @user do |f| %> <p> <%= f.label :field1 %><br /> <%= f.text_field :field1 %> </p> <p> <%= f.label :field2 %><br /> <%= f.text_field
<%= form_for @user do |f| %>
<p>
<%= f.label :field1 %><br />
<%= f.text_field :field1 %>
</p>
<p>
<%= f.label :field2 %><br />
<%= f.text_field :field2 %>
</p>
<p>
<%= f.label :field3 %><br />
<%= f.text_field :field3 %>
</p>
<p>
<%= f.label :field4 %><br />
<%= f.text_field :field4 %>
</p>
<p class="button"><%= f.submit %></p>
<% end %>
我想创建一个带有一个文本区域的视图,以启用海量数据输入
其想法是将多行粘贴到文本区域中,每行包含四个由逗号分隔的字段
在提交时,我会将数据推送到数据库中
像这样的表单是什么样子的
在哪里解析文本区域的内容?如何保存数据
谢谢
托马斯
另外,当每个人都在思考如何回答时,我想知道一个经过计算的专栏是否是一个解决方案。我的意思是这里没有什么可计算的,但至少我可以创建一个表单,其中包含一个来自模型的字段,并在后期将数据拆分到其他字段。您所需要的只是一个虚拟属性。那里有一条非常有用的铁轨 基本上,您将在模型中添加一个名为
mass\u data
的字段,并为其创建getter和setter,这些getter和setter将mass\u data
格式转换为与您的模型对应的四个单独字段。然后,您可以在表单中为该属性添加一个文本字段,就像它是一个真实属性一样
i、 e,在控制器中,执行以下操作:
def mass_data
[#{field1},#{field2},#{field3},#{field4}].join(',')
end
def mass_data=(data)
split=mass_data.split(',')
self.field1=split.first
...
self.field4=split.last
end
然后只需在表单视图中添加一个文本字段:
非常感谢Ankit,它工作得很好!我唯一剩下的问题是,我是否可以通过一次提交创建多个记录?我想在文本区域中粘贴10行,每行由四个字段组成。当我点击提交按钮时,应用程序应该为文本区域中的每一行添加一条记录,即10行,10条记录。谢谢Thomas您管理多记录输入了吗?我需要做完全相同的事情。我没有尝试过,但我认为您可以创建另一个虚拟属性,setter将10行解析为10个单独的mass_数据记录。