2010-11-23 115 views
2

我创建了一个Rails应用程序的API和我要回User对象的API调用,但没有crypted_passwordsalt,或login_token属性。Ruby on Rails的过滤属性在返回的模型对象

有没有办法做这样的事情:

do api_fetch_user(u) 
    user=User.find(u) 
    return user(:filter=>"crypted_password", "salt", "login_token") 
end 

回答

2

这可能工作你的情况,我还没有尝试过亲自虽然。 尝试在返回对象之前将过滤的属性重置为零。

do api_fetch_user(u) 
    user=User.find(u) 
    user.crypted_password = '' 
    user.salt = '' 
    user.login_token = '' 
    return user 
end 
+0

不要让我知道是否可行与否:) – 2010-11-23 18:32:41

+0

这工作,谢谢。它仍然返回属性,但是作为空字符串。我想知道是否有像Hash.delete(:attribute)这样的东西? – 2010-11-24 01:41:19

2
def api_fetch_user(user) 
    user.attributes.select { |key,v| AVAILABLE_USER_FIELDS.include?(key) } 
end 
相关问题