gpt4 book ai didi

ruby-on-rails - 将配置文件模型的某些属性设置为对其他用户公开(可见)或私有(private)(不可见)的最佳方法是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 07:03:29 25 4
gpt4 key购买 nike

我有一个 Profile 模型,它有很多属性,比如电子邮件、图像、年龄、地址等。最终用户可以将某些属性设为私有(private),以便其他用户无法查看。我通过向表 private_attr 添加一列并将其序列化以存储哈希来解决这个问题:-

{email: true, address: true, age: false }

这里的属性作为具有值 true 的键被认为是私有(private)的,不会向除这些属性所属的用户以外的用户显示。

我想知道这是解决这个问题的最好方法,还是有其他方法。提前致谢。

最佳答案

我认为您可以只序列化用户希望在数组中私有(private)的字段(而不是散列)。像 [:email, :address] (使用你的例子)

然后,当您呈现 View 时,只需检查该字段是否存在于该列中。有点像

<%= user.email unless user.private_fields.include?(:email) %>

您甚至可以将该逻辑提取到 View 助手中以避免重复。

<%= show_if_allowed(user, :email) %>

然后像这样创建一个助手

def show_if_allowed(user, field)
user[field] unless user.private_fields.include?(field)
end

关于ruby-on-rails - 将配置文件模型的某些属性设置为对其他用户公开(可见)或私有(private)(不可见)的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26236778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com