我有一系列用户需要填写的任务,
它看起来像这样:
<% form_for(@task) do |f| %>
<%= error_messages_for 'task' %>
<ul>
<li><label>Task Name</label> <input type=text name="task_list[]"> </li>
<li><label>Task Name</label> <input type=text name="task_list[]"> </li>
<li><label>Task Name</label> <input type=text name="task_list[]"> </li>
</ul>
<% end %>
现在我需要执行验证,在列表一字段不为空。 当它只是我用于在模型中执行验证的一个字段时 像这样:
validates_presence_of:name,:message任务名称不能为空
但是现在当我使用数组时,我不知道如何执行它 我很乐意在这个问题上提供一些指导
谢谢
答案 0 :(得分:1)
试试这个:
class TasksController < ApplicationController
def create
unless params[:task_list].empty
@task_list = returning Array.new do |task_list|
params[:task_list].each do |task_name|
task = Task.new
task_list << task if task.valid?
end
end
if @task_list.empty?
# do whatever should be done if no valid task was found
else
# do whatever should be done if at least on task was valid
# i.e. saving each task:
@task_list.each(&:save)
end
end
end
end