2017-10-02 8 views
0

c'est peut-être une demande habituelle et facile à répondre, mais je suis nouveau dans ce domaine. J'ai ma route et la vue associée à mon webtool prêt et fonctionnant, la route est comme ceci "mysite.com/calculator". C'est à propos de certains graphiques qui changent leurs valeurs dépend des choix dans certains leviers (1 à 4). J'ai besoin d'ajouter la fonctionnalité pour naviguer à une URL comme "monsite.com/calculator/1113231" où les numéros sont les choix présélectionnés. Si je peux faire quelque chose comme ça, je vais avoir besoin d'obtenir les chiffres et de régler les leviers par JS je pense. Quelques conseils et/ou un exemple de comment faire cela?Ruby on Rails - Passer les paramètres à définir dans l'URL

Répondre

1
# everything in parenthesis after the path 
# helper is added as a hash to the URL 
# parameters 
calculator_path(number1: 80085, number2: 58008) 

... se traduira

# parameters added to a URL is noted 
# by the '?' followed by each parameter 
# assigned and it's value 
/calculator?number1=80085&number2=58008 

Ensuite, vous pouvez tirer les params dans votre contrôleur

first_number = params[:number1] 
second_number = params[:number2] 

Si vous souhaitez ajouter une valeur dynamique, utilisez une variable obtient l'affectation d'un autre endroit dans votre code ....

calculator_path(x: @rdm_num_1, y: @rnd_num_2) 
+0

Que faire si je le nombre est aléatoire ?, Je veux dire, chaque chiffre représente un choix entre 1 et 4, la valeur d'entre eux est égale au nombre de leviers dans mon site Web. Et comment est la déclaration dans les routes.rb? – Pistorius

+0

Le numéro peut être ce que vous voulez qu'il soit. Attribuez-lui une variable d'instance ou un entier aléatoire. Le point principal ci-dessus est comment vous passez des paramètres dans une URL. tout entre parenthèses après le chemin est un hachage qui est ajouté aux paramètres d'URL. Utile pour les redirections et le passage des informations d'une vue au contrôleur via des liens ou des boutons. –

+0

Vous n'avez pas besoin de modifier vos itinéraires pour cela. –