Ruby on rails 3.2 如何使用rolify返回角色名称字符串
我试图以以下格式返回用户拥有的所有角色的名称: “角色名称1”、“角色名称2”、“角色名称3” 这样我就可以让用户拥有所有的角色了?来自rolify的方法 我尝试过收集这样的角色名称:Ruby on rails 3.2 如何使用rolify返回角色名称字符串,ruby-on-rails-3.2,rolify,Ruby On Rails 3.2,Rolify,我试图以以下格式返回用户拥有的所有角色的名称: “角色名称1”、“角色名称2”、“角色名称3” 这样我就可以让用户拥有所有的角色了?来自rolify的方法 我尝试过收集这样的角色名称: user.roles(:select => :name).collect(&:name) 但这将返回一个数组: [“角色名称1”、“角色名称2”、“角色名称3”] 你有所有的角色吗?方法希望它们是这样的: user.roles(:select => :name).collect(&:
user.roles(:select => :name).collect(&:name)
但这将返回一个数组:
[“角色名称1”、“角色名称2”、“角色名称3”]
你有所有的角色吗?方法希望它们是这样的:
user.roles(:select => :name).collect(&:name)
user.has_all_roles?('rolename1'、'rolename2'、'rolename3')
我确信我遗漏了一些非常简单的东西。将collect的结果捕获到一个变量,并将捕获的数组转换为一个参数列表
roles = user.roles(:select => :name).collect(&:name)
user.has_all_roles?(*roles)
将collect的结果捕获到一个变量,并将捕获的数组转换为参数列表
roles = user.roles(:select => :name).collect(&:name)
user.has_all_roles?(*roles)
自Rails 5.1以来,方法
user.roles(:select=>:name)
会给出以下错误:
ArgumentError: wrong number of arguments (1 for 0)
要修复它,我们只需执行@user.roles.pull(:name)
如果您想要一个名称为concatenated的字符串,我们只需执行
@user.roles.pull(:name).join(“,”)
,因为Rails 5.1方法user.roles(:select=>:name)
会给您以下错误:
ArgumentError: wrong number of arguments (1 for 0)
要修复它,我们只需执行@user.roles.pull(:name)
如果您想要一个名称为coma separated的字符串,我们只需执行@user.roles.pull(:name.join(“,”)