加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 为其他用户设置Profile模型的一些属性的最佳方

发布时间:2020-12-16 21:49:44 所属栏目:百科 来源:网络整理
导读:我有一个Profile模型,它有很多属性,如电子邮件,图像,年龄,地址等. 最终用户可以将某些属性设为私有,以便其他用户无法查看该属性. 我通过向表private_attr添加一个列并将其序列化以存储如下的哈希来解决此问题: – {email: true,address: true,age: false }
我有一个Profile模型,它有很多属性,如电子邮件,图像,年龄,地址等.
最终用户可以将某些属性设为私有,以便其他用户无法查看该属性.
我通过向表private_attr添加一个列并将其序列化以存储如下的哈希来解决此问题: –
{email: true,address: true,age: false }

这里作为具有值true的键的属性被认为是私有的,并且除了这些属于谁之外不向用户显示.

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

解决方法

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

然后,当您渲染视图时,只需检查该列中是否存在该字段.就像是

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

您甚至可以将该逻辑提取到视图助手以避免重复.

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

然后创建一个这样的帮助器

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读