Help with endpoint for a non-ActiveRecord model without a database table
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 20/100
Piste de recherche
Commencez par l’exemple du modèle CalendarEvent et Api::V3::CalendarEventsController, puis suivez la manière dont JSONAPI::ResourceSerializer traite le tableau ActiveModel mappé. Reproduisez la réponse 204 No Content et examinez le comportement de la ressource et du serializer pour les modèles qui ne sont pas des modèles ActiveRecord. Le travail est terminé lorsqu’une approche de sérialisation prise en charge est identifiée ou que les modifications d’intégration requises sont documentées.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
I have a non-ActiveRercord model without a database table I am trying to create an API endpoint for. The data for this model is populated dynamically with custom SQL and provides generic relations to real ActiveRecords.
Because of all the magic happening with JSONAPI Resources I am having a hard time serializing the array of ActiveModels successfully. Am wondering what the best approach for this might be? I've tried some monkey patching without success and would appreciate guidance
model example
class CalendarEvent
include ActiveModel::Model
attr_accessor(
:id,
:title,
# etc etc
)
def self.modelize(record)
return CalendarEvent.new(record)
end
def self.records(person_id, start_date, end_date, options = {})
sql = "select 'some custom sql' from various_table where serious_magic_happens"
records = ActiveRecord::Base.connection.execute(sql)
records = records.map{ |r| self.modelize(r) } # returns an Array of CalendarEvent::Class
end
end
controller attempt
class Api::V3::CalendarEventsController < Api::V3::ApiController
def index
records = CalendarEvent.records(1686, '2017-07-01', '2017-07-31')
resources = records.map { |r| Api::V3::CalendarEventResource.new(r, nil) }
JSONAPI::ResourceSerializer.new(Api::V3::CalendarEventResource).serialize_to_hash(resources)
end
end
The above controller returns a 204 No Content even though I am passing serialize_to_hash an array ... am I misunderstanding how this should work ? Or is there a better way?
Thanks!
- Langage dominant
- Ruby
- Étoiles
- 2.3k
- Forks
- 547
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de JSONAPI-Resources/jsonapi-resources
-
Fix incorrect translation key for parameter_not_allowed.detailPeut-être pris @pozzer l’a pris il y a 592 jours. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
-
ArgumentError with Rails 8.1Peut-être pris @SAY-5 l’a pris il y a 49 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 50/100
JSONAPI-Resources/jsonapi-resources#1488 · 1 commentaire ·
-
Rails 8.1: jsonapi_resources DSL fails to generate relationship routes due to Resource#initialize signature changePeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 42/100
JSONAPI-Resources/jsonapi-resources#1479 · 2 commentaires ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 30/100
JSONAPI-Resources/jsonapi-resources#1477 · 3 commentaires · 1 réaction ·
-
Fields filtering with includeOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
Toutes les issues de JSONAPI-Resources/jsonapi-resources
Issues similaires
-
ETQ admin, le select de condition d'une annotation répétable liste les champs publics deux foisOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
demarche-numerique/demarche.numerique.gouv.fr#14301 ·
Les mainteneurs répondent en général sous 1 jour
-
needs verification
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Les mainteneurs répondent en général sous 6 jours
-
L: java:gradle L: java:maven L: ruby:bundler T: bug 🐞
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
dependabot/dependabot-core#16547 ·
Les mainteneurs répondent en général sous 1 jour
-
Properties named open and close collide with query delimiter tokensPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 8 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour