2016-08-09 41 views
0

Ich bin neu auf Schienen und zur Zeit in einem Praktikum beteiligt, und ich war das friendly_id Juwel für meine Turnier-Klasse verwenden zugewiesen, das ist Teil des Codes in ihm:Schienen friendly_id schlecht Anfrage

class Tournament < ApplicationRecord 
    extend FriendlyId 
    friendly_id :url_id 
    ... 
end 

I Verwenden Sie kein Slug, da ich ein url_id Attribut habe, das meine gewünschte URL speichert und wenn ich mit dem alten .../tournaments/1 alles alles gut versuche, aber mit .../tournaments/example bekomme ich "Beispiel ist kein gültiger Wert für ID" mit Code 103, Status 400. Irgendwelche Ideen, was das Problem sein könnte?

Antwort

2

Sie müssen Ihren Controller für Tournaments aktualisieren, so dass es friendly.find Methode anstelle der find verwendet.

# Change this: 
Tournament.find(params[:id]) 

# to 
Tournament.friendly.find(params[:id]) 
+0

Die 'tournaments_controller.rb' Datei ist leer – Robert

+0

Nun, schau dir in die Protokolle und die genaue Zeile finden, wo das' Beispiel kein gültiger Wert für id' Fehler angehoben wird, und Sie werden Ihre Datei finden . – Uzbekjon

+0

Begann GET "/ api/Turniere/Beispiel" für :: 1 am 2016-08-09 11:48:27 +0300 [1m [36mActiveRecord :: SchemaMigration Load (1.6ms) [0m [1m [34mSELECT "schema_migrations" . * FROM "schema_migrations" [0m Verarbeitung von TournamentsController # show als API_JSON Parameter: { "id" => "Beispiel"} 400 Bad Request in 7ms Completed (Views: 0,3 ms | Active: 0,0 ms) I verstehe es nicht, wird es von 'turniers_controller.rb' behandelt? – Robert