2011-09-21 80 views
2

我得到了一個Ruby模型「Comment」,它有幾個屬性:username,date_added,modify_date等等。當我創建這個模型的一個實例時,將其稱爲「i」,並且調用i.attributes,它給了我所有的屬性這個模型。無論如何要讓它不返回我想要保密的幾個屬性。Rails:如何隱藏模型的屬性?

原因是,我懶洋洋地給i.attributes調用to_json,有些模型包含密碼等敏感信息,我想讓這些私有。

回答

4

型號爲「越權」的to_json方法嘗試使用:唯一的或:除了#to_json方法選項。例如:

@comment.to_json(:only => [ :username, :date_added, :modify_date ]) 

...或沒有哈希火箭如果您對Ruby 1.9的...

@comment.to_json(only: [ :username, :date_added, :modify_date ]) 
0

您可以創建一個方法,例如Comments.public_attributes,它只返回您想要的屬性。

1

一個想法是在具有敏感數據