Ruby on Rails过滤返回模型对象的属性

我正在为Rails应用程序创建一个API,我想为API调用返回User对象,但没有crypted_passwordsaltlogin_token属性。

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

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

这可能适用于您的情况,但我没有亲自尝试过。 尝试在返回Object之前将Filtered Attributes重置为nil。

 do api_fetch_user(u) user=User.find(u) user.crypted_password = '' user.salt = '' user.login_token = '' return user end 
 def api_fetch_user(user) user.attributes.select { |key,v| AVAILABLE_USER_FIELDS.include?(key) } end