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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |