我正在寻找一种方法,使用Rails来区分关联的一条记录(例如:@user)(例如:@users)。
这是我正在尝试做的事情:
def my_method(var)
if var == #record
# do something
elsif var == #association
#do something else
end
end
var
可以是任何记录或关联,例如@ user,@ users,@ page,@ pages,...
我试图用.class或.each方法解决这个问题但没有成功......
答案 0 :(得分:1)
记录通常是ActiveRecord
base的实例,关联通常是可枚举的集合。
您可以明确检查类型
def my_method(var)
if var.is_a? ActiveRecord::Base
# single instance
else
# collection, association
end
end
或依赖Ruby duck-tying。
def my_method(var)
if var.respond_to? :each
# collection, association
else
# single instance
end
end
鸭子打字通常是首选方法。