0

Rails를 사용하여 연관 (예 : @users)의 레코드 하나 (예 : @user)를 구별하는 방법을 찾고 있습니다.연결 레코드를 구별 할 수있는 방법이 있습니까?

내가 시도 ...

def my_method(var) 
    if var == #record 
    # do something 
    elsif var == #association 
    #do something else 
    end 
end 

var이 @user, @users, @page, @pages 같은 모든 레코드 또는 협회가 될 수 있습니다 여기에

내가 할 노력하고있어입니다 .class 또는 .each 메소드를 성공없이 해결하려면 ...

답변

1

레코드는 일반적으로 ActiveRecord의 인스턴스이며, 연관은 일반적으로 열거 가능한 컬렉션입니다.

명시 적 유형

def my_method(var) 
    if var.is_a? ActiveRecord::Base 
    # single instance 
    else 
    # collection, association 
    end 
end 

를 확인하거나 루비 오리 묶는에 의존 할 수 있습니다.

def my_method(var) 
    if var.respond_to? :each 
    # collection, association 
    else 
    # single instance 
    end 
end 

일반적으로 오리 유형 지정이 선호됩니다.

+0

훌륭한 작품입니다. 고맙습니다 ! – guduf

관련 문제