2016-06-05 32 views
0
Rails 5.0.0.rc1 
Ruby 2.2.5 (can update to latest) 

Ich würde gerne denken, dass dies möglich ist. Ich mache eine get Anforderung, dass, wenn ein Feld ausgewählt, wird der Benutzer auf die nächste Taste drückt, geht es auf eine andere Seite und die Seite der URL wie folgt aussieht:Speichern Hash-Werte in url

http://localhost:3000/food/r/new?utf8=%E2%9C%93&id=2&food=Apple&commit=Next 

Das sieht hässlich aus, zu mir. Könnte es schöner sein wie folgt aussehen:

http://localhost:3000/food/r/new/<some_random_short_string/<name-of-page> 

ich die some_random_short_string sich vorstellen würde so etwas haben ein Hash dann in der Steuerung wäre:

hash = params[:some_random_short_string] 
hash[:food] #=> "Apple" 
etc... 

Nicht sicher, wie um dies zu realisieren . Irgendwelche Hinweise, bitte?

+0

Vielleicht könnte friendly_id gem helfen? – seph

+0

@seph Nicht wirklich. Ich kann in der URL mit vielen Feldnamen enden. – Sylar

+0

Hashing (mit MD5 oder SHA1) ist eine Einwegfahrt. Sie haben Ihre ursprünglichen Daten und Sie erhalten sie nie zurück. – Aetherus

Antwort

1

Anstatt meine Frage zu löschen, werde ich sie beantworten, da ich eines Tages darauf zurückkommen werde.

'Get' legt Daten in der URL, also ging ich für post. Keine Notwendigkeit für einen Hash, verwenden Sie einfach Params, um die Werte zu speichern.

Sobald die Seite gesendet wurde, wird die URL wie folgt aussehen: http://localhost:3000/food/r/new. In der Steuerung verwenden Sie Ihre params:

@selected_food = params[:food] 

new.html.erb:

<%= @selected_food %> #=> Apple 
Verwandte Themen