ruby on rails使用数组进行模型验证

时间:2010-06-25 08:31:54

标签: ruby-on-rails

我有一系列用户需要填写的任务,
它看起来像这样:

 <% 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任务名称不能为空

但是现在当我使用数组时,我不知道如何执行它 我很乐意在这个问题上提供一些指导

谢谢

1 个答案:

答案 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