Как передать атрибуты в Serializer не в модели в Rails (ActiveRecord)? - PullRequest
0 голосов
/ 23 марта 2019

Я создаю бэкэнд Rails, который имеет Users, Sightings и Comments. Модель Comment объединяет Sighting и User. Я хотел бы передать имя пользователя или имя пользователя вместе с user_id, который является атрибутом таблицы соединения Comments в CommentSerializer, моему внешнему интерфейсу.

Я могу получить доступ к этим данным с помощью методов Active Record или Ruby, но как на самом деле сделать это атрибутом для передачи через Serializer?

Вот мой CommentSerializer файл:


class CommentSerializer < ActiveModel::Serializer

  attributes :id, :body, :likes, :user_id

  belongs_to :commentable, :polymorphic => true
  belongs_to :sighting
  has_many :comments, as: :commentable
end

Ответы [ 2 ]

0 голосов
/ 24 марта 2019

Так что мне повезло с этим методом в моем файле Serializer, чтобы передать этот атрибут:

  def user_name
 User.all.find { |f| f.id == object.user_id }.username 

конец

0 голосов
/ 23 марта 2019

добавьте к своим атрибутам: например, user_name, а затем добавьте

def user_name object.user.name end

в вашем классе CommentSerializer

...