4
私のデータベースにフィールドと呼ばれるIPがあります。そこには、自分のBlogをビルドしたRailsでメッセージを送信するときに、ユーザのIPアドレスを(#createメソッドで)指定します。Ruby on Railsのフィールドを非表示にする
しかし、記事を別の形式(JSON)で表示する場合は、このフィールドが表示されます。 フィールドIPを非表示にするにはどうすればよいですか?あなたは、一般的に特定のフィールドを除外したい場合は、
respond_to do |format|
format.json { render :json => @user, :except=> [:ip] } # or without format block: @user.to_json(:except => :ip)
end
ちょうどあなたのユーザーモデルでto_jsonをメソッドを上書き:
だから私が[:ip]をjsonから除外すれば誰もそれを見ることができないだろうか? –
はい、:exceptは、そのプロパティのJSON出力への書き込みを完全にスキップすることを意味します。 – Nate
exceptを使用すると、指定された属性がjsonエンコーディングに含まれていないことが確認されます。したがって、json表現を参照するユーザーのセットとして「nobody」を定義すると、yesになります。フィールドはDB上に残っているので、データベース管理者はそれを見ることができます。 – emrass