ruby-on-rails – Rails – 如何声明attr_accessible多重角色而不重复

有没有一种方式可以声明attr_accessible为多个角色没有大量的重复?

如果我有几个用户角色,并且允许每个角色编辑不同的属性子集,那么我的attr_accessible声明就是这样的:

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

我也想

> A)定义可以共享的可访问属性数组
不同的角色或
B)定义一个可以访问的角色数组
属性

这可能吗?

解决方法

所有的红宝石代码仍然只是红宝石代码,因此是无限的黑客.例如
ROLES = [:admin,:manager,:support,:user,:guest]
ACTIVE_ROLES = [:admin,:support]
ROLES.each do |role|
   fields = [:first_name,:last_name]
   fields += [:active] if ACTIVE_ROLES.include?(role)
   attr_accessible *fields,:as => role
end

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...