Проверка модели без базы данных с массивом объектов - PullRequest
1 голос
/ 10 января 2012

Итак, вот моя модель без базы данных.

class UserApplication::CoApplicant

  include ActiveModel::Validations
  include ActiveModel::Conversion

  attr_accessor :applicant, :first_name, :last_name, :email



  def initialize(attributes = {})
    attributes.each do |name, value|
      send("#{name}", value)
    end
  end

  def persisted?
    false
  end
end

Я собираюсь передать массив объектов, которые выглядят примерно так.

"applicant"=>{"0"=>{"email"=>"blank@gmail.com", "last_name"=>"Jackson", "first_name"=>"Shaun"}, "1"=>{"email"=>"blank2@gmail.com", "last_name"=>"Davis", "first_name"=>"Dave"}}

Проблема, которую яЯ придумываю способ проверки каждого объекта.Эти значения

поступают из динамически генерируемой таблицы, которая может находиться в диапазоне от 1 до 10 строк.

«0» и «1» - представляет строку таблицы.И я хочу проверить каждый набор

атрибутов {email, first_name, last_name}.

Мне никогда раньше не приходилось делать такой тип проверки, поэтому любая помощь будет оценена!

1 Ответ

2 голосов
/ 11 января 2012

Похоже, вам просто нужно создать экземпляр каждого из ваших экземпляров, а затем проверить их. Это должно быть так же просто, как создать их на основе исходного массива:

applicant_data = applicants['applicant']
applicant_data.each do |id, attributes|
  applicant = applicant.new(attributes)
  applicant.valid?
end

У вас также есть ошибка в назначении, когда вы вызываете метод "#{name}", а не метод #{name}=:

def initialize(attributes = {})
  attributes.each do |name, value|
    send("#{name}=", value)
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...