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 2014-10-30 11:01:37

相關問題