JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources
Relationships on Create for non ActiveRecord models
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
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- 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