2012-05-03 91 views
4

我在我的數據庫中有一個名爲IP的字段,當我在Rails中構建的博客中發送消息時,我放置了用戶IP(在#create方法中)。隱藏Ruby on Rails中的字段

但是當我想以另一種格式(JSON)查看文章時,該字段是可見的。 如何隱藏字段IP?

回答

8

你可以做到這一點的格式塊在你的控制器是這樣的:

respond_to do |format| 
    format.json { render :json => @user, :except=> [:ip] } # or without format block: @user.to_json(:except => :ip) 
end 

如果你想一般排除特定的領域,只是覆蓋to_json方法在用戶模式:

class User < ActiveRecord::Base 
    def to_json(options={}) 
    options[:except] ||= [:ip] 
    super(options) 
    end 
end 
+0

所以如果我從json中排除[:ip],我可以肯定沒人能看到它嗎? –

+0

是的,:except表示它完全跳過將該屬性寫入JSON輸出。 – Nate

+0

使用except可以確保給定的屬性不包含在json編碼中。因此,如果您將「nobody」定義爲查看json表示的用戶組,那麼是的。該字段仍然存在於數據庫中,因此數據庫管理員將能夠看到它。 – emrass