Rails - 如何在不重复的情况下为多个角色声明 attr_accessible

2024-03-02

有没有办法为多个角色声明 attr_accessible 而无需大量重复?

如果我有多个用户角色,并且每个角色都可以编辑不同的属性子集,那么我的 attr_accessible 声明如下所示:

attr_accessible :first_name, :last_name, :active, :as => :admin
attr_accessible :first_name, :last_name, :as => :manager
attr_accessible :first_name, :last_name, :as => :guest

我愿意

  • A)定义可访问属性的数组,这些属性可以在 不同的角色或
  • B) 定义一组可以访问相同角色的角色 属性

这可能吗?


我只是花了很长时间试图找出最好的方法来做到这一点。 Rails 人员希望您复制一大堆代码,这似乎很奇怪!

在深入研究 Rails 源代码后,发现您可以简单地传递一个数组来一次将属性分配给多个角色(:default 是默认的 Active Record 角色)

attr_accessible :name, :email, :as => [ :default, :admin ]    
attr_accessible :featured, :as => :admin

您的模型中没有凌乱的红宝石数组!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails - 如何在不重复的情况下为多个角色声明 attr_accessible 的相关文章

随机推荐