我得到了一个带有几个属性的Ruby模型“Comment”:username,date_added,modify_date等。当我创建这个模型的实例时,称之为“i”,并调用i.attributes,它给了我所有的属性对于这个模型。反正是为了让它不返回我想保密的几个属性。
原因是,我懒得为i.attributes调用to_json,有些模型包含敏感信息,比如密码,我想把这些信息设为私有。
答案 0 :(得分:4)
尝试使用#to_json方法的:only或:except选项。例如:
@comment.to_json(:only => [ :username, :date_added, :modify_date ])
...如果您使用Ruby 1.9,或者没有哈希火箭......
@comment.to_json(only: [ :username, :date_added, :modify_date ])
答案 1 :(得分:1)
一个想法是“覆盖”具有敏感数据的模型中的to_json方法
答案 2 :(得分:0)
您可以创建一个仅返回所需属性的Comments.public_attributes
方法。