JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources

Relationships on Create for non ActiveRecord models

Abierto
#929 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Ruby
Estrellas
2.3k
Forks
546
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

I guess more of a question.

I have this legacy app we are trying to slowly migrate to use jsonapi-resources. We have some bloated models we are splitting into smaller resources but also some models that point to Redis-backed models.

class RedisResource < JSONAPI::Resource
  attribute :attr_1
  attribute :attr_2

  # Override required. The underlying model is not based on
  # ActiveRecord.
  def self.find_by_key(key, options = {})
    context = options[:context]
    model = RedisModel.find(key)
    raise(JSONAPI::Exceptions::RecordNotFound, key) if model.nil?
    new(model, context)
  end
end

The problem though, is that somehow the relationship data is getting lost before reaching the Resource methods like: #replace_field(field_data).

All that info is available when I use an ActiveRecord model that uses the #belongs_to helper. But unsure what do I need to do/implement in my models to get the relationship assignment working.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con RedisResource#find_by_key y sigue cómo los datos de relaciones llegan a #replace_field(field_data) para recursos que no son de ActiveRecord. Compara ese recorrido con un recurso de ActiveRecord que use belongs_to; se considera terminado cuando la asignación de relaciones del issue funciona para el modelo respaldado por Redis y el comportamiento relevante está verificado mediante pruebas.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
redis, ruby
Área
api, backend
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.