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

前端之家收集整理的这篇文章主要介绍了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)定义一个可以访问的角色数组
属性

这可能吗?

@H_301_16@解决方法
所有的红宝石代码仍然只是红宝石代码,因此是无限的黑客.例如
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

猜你在找的Ruby相关文章