我有一个问题,我试图从一个假定为字符串的类中获取属性。但是它给了我对象的id
# tenant can be a string or a Tenant Object
def return_name (tenant)
if tenant.class == "Tenant"
name = tenant.name
else
name = tenant
end
return name
end
# puts return_name (tenantObj) will print out
<Tenant:0x007fc9ba1fe3a8>
# puts return_name ("denis") will print out
denis
你是如何解决这个问题的?
答案 0 :(得分:0)
#class
返回类,但不是字符串。
def return_name (tenant)
if tenant.class == Tenant # or tenant.instance_of? Tenant
tenant.name
else
tenant
end
end
答案 1 :(得分:0)
def return_name (tenant)
tenant.is_a?(Tenant) ? tenant.name : tenant
end
答案 2 :(得分:0)
只是为了扩展Harunojikan的回答;
def return_name (tenant)
tenant.respond_to? :name ? tenant.name : tenant
end
我认为respond_to在ruby中更具惯用性