ruby on rails Проверка моделей с массивами - PullRequest
1 голос
/ 25 июня 2010

У меня есть массив задач, которые пользователь должен выполнить,
Это выглядит так:

 <% 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 %>

Теперь мне нужно выполнить проверку, что в поле списка 1 не пусто . Когда это было только одно поле, я использовал для проверки в модели как это:

validates_presence_of: name,: message Имя задачи не может быть пустым

Но теперь, когда я использую массив, я не знаю, как я могу его выполнить
Я буду рад некоторым советам в этом выпуске

Спасибо

1 Ответ

1 голос
/ 25 июня 2010

Попробуйте это:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...