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

时间:2010-11-23 18:26:05

标签: 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

2 个答案:

答案 0 :(得分:3)

def api_fetch_user(user)
  user.attributes.select { |key,v| AVAILABLE_USER_FIELDS.include?(key) }
end

答案 1 :(得分:2)

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

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