Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Bad links with engine mounted as root

Ouverte
#1,303 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
45/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
À l'abandon
Stack technique
rails, ruby
Domaine
api, backend

Piste de recherche

Commencez dans lib/jsonapi/link_builder.rb, au niveau de resource_url, puis examinez comment engine_mount_point est calculé pour une engine montée sur '/'. Reproduisez le cas signalé du montage à la racine et vérifiez que le self link généré comporte une seule barre oblique initiale plutôt que '//v1/users/...'; le comportement existant de construction des liens doit rester correct pour les montages qui ne sont pas à la racine.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

This issue is a (choose one):

  • Problem/bug report.
  • Feature request.
  • Request for support. Note: Please try to avoid submitting issues for support requests. Use Gitter instead.

Checklist before submitting:

  • I've searched for an existing issue.
  • I've asked my question on Gitter and have not received a satisfactory answer.
  • I've included a complete bug report template. This step helps us and allows us to see the bug without trying to reproduce the problem from your description. It helps you because you will frequently detect if it's a problem specific to your project.
  • The feature I'm asking for is compliant with the JSON:API spec.

Description

As described on lib/jsonapi/link_builder.rb#L139,

def resource_url(source)
    "#{ base_url }#{ engine_mount_point }#{ resource_path(source) }"
end

But in this case:

constraints subdomain: 'api' do
    mount MyEngine::Engine, at: '/' if defined?(MyEngine::Engine)
  end

This creates a double / due to root value of engine_mount_point.

I guess a little update of:

@engine_mount_point = @engine ? @engine.routes.find_script_name({}) : ""

should be enough.

Current result:

{
    "data": {
        "id": "ed526d56-cc7e-41f4-8e99-fccf73fb7500",
        "type": "users",
        "links": {
            "self": "//v1/users/ed526d56-cc7e-41f4-8e99-fccf73fb7500"
        },
        "attributes": {
            "first_name": null,
            "last_name": null,
            "email": "[email protected]"
        }
    }
}

//v1/users/ed526d56-cc7e-41f4-8e99-fccf73fb7500 should be /v1/users/ed526d56-cc7e-41f4-8e99-fccf73fb7500

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

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de JSONAPI-Resources/jsonapi-resources

Toutes les issues de JSONAPI-Resources/jsonapi-resources

Issues similaires

Plus d'issues Ruby

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.