2 votes

Comment créer une route variable dans rails

J'ai vraiment du mal à créer une route comme celle-là.

localhost:3000/api/search/:{this_can_be_anything}

Je veux frapper la search et faire en sorte que le résultat final soit pris comme une variable

Faites-moi savoir si vous savez comment faire.

EDIT : Ce que je n'ai pas mentionné (ou réalisé que c'était important) est que :{this_can_be_anything} va en fait refléter une url telle que david:office Donc, je veux être capable de chercher quelque chose comme localhost:3000/api/david:office et voir la page connexe

2voto

Johan Wentholt Points 2137

Vous n'êtes pas loin de la syntaxe réelle. Quelque chose comme ceci pourrait répondre aux exigences.

# config/routes.rb
get '/api/search/:query', to: 'api/search#index'

# app/controllers/api/search_controller.rb
module Api
  class SearchController < ApplicationController
    def index
      query = params[:query]
      # ...
    end
  end
end

Ce qui précède devrait envoyer la demande GET /api/search/david:office à la index l'action de la SearchController . La chaîne "david:office" sera disponible par l'intermédiaire du :query paramètre.

1voto

lacostenycoder Points 401

Tous les contrôleurs et les routes get/post peuvent prendre des paramètres. Ils sont passés dans l'url comme ceci :

localhost:3000/api/search?q=whatever_you_type_here

À l'intérieur de votre contrôleur, vous aurez accès au hachage des paramètres.

params
=>{q: 'whatever_you_type_here'}

Vous pouvez ajouter plus d'un paramètre comme ceci :

localhost:3000/api/search?a=foo&b=bar

Maintenant, la méthode de recherche de votre contrôleur recevra des paramètres

params
=>{a: 'foo', b: 'bar'}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X