2012-01-23 6 views
0

두 모델 & offline_user 및 두 모델의 내용을 결합한 목록에서 항목을 선택하려면 collection_select와 같은 드롭 다운 선택 컨트롤을 사용하고 싶습니다.하나의 선택 목록에서 여러 모델 결합

어떻게하면됩니까?


그들은 아주 비슷합니다. 둘 다 first_name, last_name, 전자 메일 주소 및 전화 필드를 포함합니다. 그러나 전자 메일 주소는 사용자 모델에 대해서는 필수 항목이지만 오프라인 사용자 모델에는 필수 항목은 아닙니다. 나는 사용자 모델 인증을 위해 devise를 사용한다. 다음과 같이

이 뒤에 이유는

내가 웹 응용 프로그램 로그인으로 이메일 주소를 사용하지만 또한 이메일 주소가없는 아마도 사업을 전화 및 고객에 대한 수용 할 필요가있다. 그래서 관리자가 이메일 주소를 요구하지 않고 새로운 사용자를 만들 수 있기를 바랍니다.

비즈니스는 또한 이메일 주소를 제공하라는 요청을받지 않은 기존 고객의 목록을 보유하게됩니다. 이 목록을 가져올 수 있기를 원합니다.

아마 하나의 모델을 사용해야하지만 아마도 그 모델을 개별적으로 유지하는 것이 가장 좋은 것처럼 보였습니다. 제안?

+0

는 테이블 구조가 비슷한 모든 사용자 이름을 잡기 위해 일반 User.all.select(:first_name) 시설을 사용할 수 있을까? –

+0

User에서 부울 속성이 아닌 별도의 모델을 사용하는 이유는 무엇입니까? – Eric

+0

위의 세부 정보를 추가하면 아마도 단일 모델을 사용하는 것을 선호 할 것입니다. 아마도 대신 시도하고 대신 할 것이지만 자체 문제를 제기 할 것입니다. –

답변

0

당신이 당신이 하나 개의 모델에서 사용자의 두 가지 유형을 가질 수 있도록,뿐만 아니라 정상을 보장합니다 마이그레이션

create_table :users do |t| 
    t.string :first_name 
    t.string :last_name 
    t.string :email 
    t.string :phone 
    t.boolean :offline 
end 

다음 모델

class User < ActiveRecord::Base 
    validates :email, :presence => true, :if => "offline == false" 
end 

를 사용한다면 사용자에게 전자 메일 주소가 있습니다.

그런 다음

+0

나는이 접근법에 대해 생각하고있다. 나는 나중에 너희들에게 돌아올 것이다. –

관련 문제