2012-04-19 3 views
1

사용자의 기술과 원하는 기술을 배열로 보유 할 수있는 클래스를 중첩하려고 시도했지만 배열에 저장할 양식 객체를 가져올 수 없습니다.레일, 몽고이스트 및 중첩 된 모델을 내 놓습니다.

Class User 
include Mongoid::Document 
devise :database_authenticatable, :registerable, 
    :recoverable, :rememberable, :trackable, :validatable 

## Database authenticatable 
field :email,    :type => String, :null => false, :default => "" 
field :encrypted_password, :type => String, :null => false, :default => "" 



## Recoverable 
field :reset_password_token, :type => String 
field :reset_password_sent_at, :type => Time 

## Rememberable 
field :remember_created_at, :type => Time 

## Trackable 
field :sign_in_count,  :type => Integer, :default => 0 
field :current_sign_in_at, :type => Time 
field :last_sign_in_at, :type => Time 
field :current_sign_in_ip, :type => String 
field :last_sign_in_ip, :type => String 


field :first_name 
field :last_name 

field :location 


index([[:skills, :desired]], :background => true) 

validates_presence_of :first_name, :last_name, :location 
validates_uniqueness_of :first_name, :last_name, :email, :case_sensitive => false 
attr_accessible :first_name, :last_name, :email, :password, :password_confirmation,  :remember_me, :location 

embeds_one :skills 
end 
class Skills 
include Mongoid::Document 

field :skills, type => String 
field :desired, type => String 

embedded_in :user 
end 

모델 및보기를 수정하여 사람이 여러 기술과 원하는 기술을 등록 할 수 있도록하려면 어떻게합니까? (나는 레일 초보자입니다.) 기술을 원하는 경우

+1

이것은 제 생각이지만 인증을 다루기 위해 User 모델을 남기고 별도의 링크 된'Profile' 또는'Person' 모델을 가지고있어 스킬 등을 다루는 것이 좋습니다. 그렇지 않으면 사용자 모델이 꽤 좋아질 것입니다 꽤 빨리 어수선하게. – Russell

+0

그 권리를 달성하기 위해 장치 모델을 재정의해야합니까? – user1344267

+0

당신이해야 할 일은 개발자 모델에 has_one : person을 추가하고, 사용자 모델에 belongs_to : user를 추가하는 것입니다. – Russell

답변

1

embeds_oneembeds_many이어야합니다.