遍历表单 post 数据的多个字段
Iterating through multiple fields on form post data
在我的 rails 应用程序中,我目前能够从 name="start"
和 name="end"
两个表单字段中获取表单 post 数据。 post数据如下:
start: 2018-05-18 12:00
end: 2018-05-18 12:00
这是获取 post 数据并对其进行处理的代码。
post "/time" do
time = DoTime.new
start = params["start"]
finish = params["end"]
time.started_at = start
time.finished_at = finish
time.profile = current_user
time.save
redirect "/profile"
end
我已经实现了一个动态表单,允许用户根据需要多次复制开始和结束字段。所有这一切都是在提交之前添加 HTML 表单字段,然后 post 将其与表单一起添加。新的 post 数据示例如下:
start: 2018-05-18 12:00
end: 2018-05-18 12:00
start: 2018-05-19 12:00
end: 2018-05-19 12:00
我想知道如何循环遍历 ruby 来查找每个元素的 start
和 end
以及 运行 上面代码的每个实例它发现。有什么指示或建议吗?我尝试了几种不同的方法,但一直 运行ning 出错。
谢谢
如果我正确理解你的问题,你希望 params[:start]
和 params[:end]
包含一组日期。为此,您需要将所有重复的 start 字段的 name
属性设置为 "start[]" 并且 end 字段,设置为 "end[]".
现在,您可以迭代控制器中的值并创建多个对象,如下所示:
post "/time" do
# Assuming the number of starts and ends will be same, ...
params[:start].count.times do |i|
time = DoTime.new
time.started_at = params[:start][i]
time.finished_at = params[:end][i]
time.profile = current_user
time.save!
end
redirect "/profile"
end
在我的 rails 应用程序中,我目前能够从 name="start"
和 name="end"
两个表单字段中获取表单 post 数据。 post数据如下:
start: 2018-05-18 12:00
end: 2018-05-18 12:00
这是获取 post 数据并对其进行处理的代码。
post "/time" do
time = DoTime.new
start = params["start"]
finish = params["end"]
time.started_at = start
time.finished_at = finish
time.profile = current_user
time.save
redirect "/profile"
end
我已经实现了一个动态表单,允许用户根据需要多次复制开始和结束字段。所有这一切都是在提交之前添加 HTML 表单字段,然后 post 将其与表单一起添加。新的 post 数据示例如下:
start: 2018-05-18 12:00
end: 2018-05-18 12:00
start: 2018-05-19 12:00
end: 2018-05-19 12:00
我想知道如何循环遍历 ruby 来查找每个元素的 start
和 end
以及 运行 上面代码的每个实例它发现。有什么指示或建议吗?我尝试了几种不同的方法,但一直 运行ning 出错。
谢谢
如果我正确理解你的问题,你希望 params[:start]
和 params[:end]
包含一组日期。为此,您需要将所有重复的 start 字段的 name
属性设置为 "start[]" 并且 end 字段,设置为 "end[]".
现在,您可以迭代控制器中的值并创建多个对象,如下所示:
post "/time" do
# Assuming the number of starts and ends will be same, ...
params[:start].count.times do |i|
time = DoTime.new
time.started_at = params[:start][i]
time.finished_at = params[:end][i]
time.profile = current_user
time.save!
end
redirect "/profile"
end