【问题标题】:How to sanitize an object obtained with belongs_to in rails 3如何在rails 3中清理使用belongs_to获得的对象
【发布时间】:2011-05-27 15:44:16
【问题描述】:

我有两个类:用户和消息。以下是定义:

类消息 '用户', :foreign_key => 'receiver' belongs_to :sender, :class_name => '用户', :foreign_key => 'sender' 结尾 类用户 'Message', :foreign_key => 'receiver' has_many :outgoing_messages, :class_name => '消息', :foreign_key => 'sender' 结尾

当我在控制器中获取消息时,我也会在

中获取用户对象
@message.receiver 

@message.sender

这些对象包含一些我想在将其传递给视图之前删除的用户信息(密码等)(在我的例子中是一个 json 对象)。这样做的最佳方法是什么?

感谢您的帮助。

【问题讨论】:

    标签: ruby-on-rails model ruby-on-rails-3 belongs-to


    【解决方案1】:

    如果您在视图中手动渲染对象,则无需清理 - 响应将仅包含您公开的元素。

    如果您使用 AJAX 和 to_json,有几种方法可以删除信息。您可以在初始 Model.find 中使用 select 来确保敏感信息实际上不是从查询中返回的。请参阅Active Record Querying - selecting specific fields 了解更多信息。

    替代方法是覆盖 JSON 呈现本身以仅显示必填字段,使用:

    to_json(:only => [ :column, :column ])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      • 1970-01-01
      相关资源
      最近更新 更多