2012-01-10 2 views
1

Итак, вот моя модель без базы данных.Проверка модели без базы данных с массивом объектов

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"=>"[email protected]", "last_name"=>"Jackson", "first_name"=>"Shaun"}, "1"=>{"email"=>"[email protected]", "last_name"=>"Davis", "first_name"=>"Dave"}} 

Проблема, с которой я сталкиваюсь, подходит для проверки каждого объекта. Эти значения:

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

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

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

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

ответ

2

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

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 
+0

Спасибо много человек, это было очень полезно. Не уверен, почему мне так тяжело было с этим, но ты это прояснил. – davissp14

+0

Я столкнулся с этой проблемой прежде всего на нескольких моих решениях, а также на том, что вы предоставили. «UserApplication не пропускает постоянный заявитель!» Из того, что я читал из других источников, это рельсы <3.1 ошибка? Испытывали ли вы это или знаете что-нибудь об этом? – davissp14

+1

Осмотритесь здесь: [пример] (http://stackoverflow.com/questions/4056894/rails-production-env-object-is-not-missing-constant) – tadman

Смежные вопросы