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

관련 문제