Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在资源配置模型的响应中,返回的角色名称有多少关联?_Ruby On Rails_Rolify - Fatal编程技术网

Ruby on rails 在资源配置模型的响应中,返回的角色名称有多少关联?

Ruby on rails 在资源配置模型的响应中,返回的角色名称有多少关联?,ruby-on-rails,rolify,Ruby On Rails,Rolify,我的应用程序用于管理多个角色。我已经正确配置了关联,但我需要在争议的响应中添加角色名 看看我下面的联想: class Dispute < ApplicationRecord resourcify has_many :users, through: :roles ... end class UsersRole < ApplicationRecord belongs_to :user belongs_to :role end class User < A

我的应用程序用于管理多个角色。我已经正确配置了关联,但我需要在
争议的响应中添加角色名

看看我下面的联想:

class Dispute < ApplicationRecord
  resourcify

  has_many :users, through: :roles

  ...
end

class UsersRole < ApplicationRecord
  belongs_to :user
  belongs_to :role
end

class User < ApplicationRecord
  ...

  rolify

  has_many :users_roles
  has_many :roles, through: :users_roles
  has_many :disputes, through: :roles, source: :resource, source_type: 'Dispute'

  ...
end
类争议
此时的反应是这样的:

[
  {
    "id": "90301da1-5ab6-4834-9865-30dc678043f1",
    "cpf": "11201300266",
    "name": "Convidado",
    "email": "convidado@gmail.com"
    "role": "guest" <<< This not exists yet! How add this column on response?
  }
]
class SomeSerializer < ActiveModel::Serializer
  attributes :id, :cpf, :name, :email, :roles

  def roles
    object.roles.pluck(:name)
  end
end
[
{
“id”:“90301da1-5ab6-4834-9865-30dc678043f1”,
“cpf”:“11201300266”,
“名称”:“Convidado”,
“电子邮件”:convidado@gmail.com"

“角色”:“来宾”您可以使用类似ActiveModelSerializer()的东西来序列化对象

因此,您只需要像这样创建UserSerializer:

[
  {
    "id": "90301da1-5ab6-4834-9865-30dc678043f1",
    "cpf": "11201300266",
    "name": "Convidado",
    "email": "convidado@gmail.com"
    "role": "guest" <<< This not exists yet! How add this column on response?
  }
]
class SomeSerializer < ActiveModel::Serializer
  attributes :id, :cpf, :name, :email, :roles

  def roles
    object.roles.pluck(:name)
  end
end
class SomeSerializer