我得到了一個Ruby模型「Comment」,它有幾個屬性:username,date_added,modify_date等等。當我創建這個模型的一個實例時,將其稱爲「i」,並且調用i.attributes,它給了我所有的屬性這個模型。無論如何要讓它不返回我想要保密的幾個屬性。Rails:如何隱藏模型的屬性?
原因是,我懶洋洋地給i.attributes調用to_json,有些模型包含密碼等敏感信息,我想讓這些私有。
我得到了一個Ruby模型「Comment」,它有幾個屬性:username,date_added,modify_date等等。當我創建這個模型的一個實例時,將其稱爲「i」,並且調用i.attributes,它給了我所有的屬性這個模型。無論如何要讓它不返回我想要保密的幾個屬性。Rails:如何隱藏模型的屬性?
原因是,我懶洋洋地給i.attributes調用to_json,有些模型包含密碼等敏感信息,我想讓這些私有。
型號爲「越權」的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 ])
您可以創建一個方法,例如Comments.public_attributes
,它只返回您想要的屬性。
一個想法是在具有敏感數據