2016-08-09 5 views
0

Я новичок в рельсах и в настоящее время участвует в интернатуре, и я был назначен использовать friendly_id камень для моего класса турнира, это часть кода в нем:рельсы friendly_id плохой запрос

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

I не используйте slug, так как у меня есть атрибут url_id, который хранит мой желаемый URL-адрес, и когда я пытаюсь использовать старый .../tournaments/1, все в порядке, но с .../tournaments/example Я получаю «пример недействительным значением для id» с кодом 103, статус 400. Есть идеи, что может быть проблемой?

ответ

2

Необходимо установить контроллер на Tournaments, чтобы он использовал метод friendly.find вместо find.

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

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

Параметр 'tournaments_controller.rb' файл пуст – Robert

+0

Ну, смотрите в журналах и найти строку, где, что' пример не является допустимым значением для id' ошибки поднимается, и вы найдете файл , – Uzbekjon

+0

Начато GET "/ api/tournament/example" for :: 1 at 2016-08-09 11:48:27 +0300 [1m [36mActiveRecord :: SchemaMigration Load (1.6ms) [0m [1m [34mSELECT "schema_migrations" . * FROM "schema_migrations" [0м обработки по TournamentsController # показывают, как API_JSON Параметры: { "ID" => "пример"} Завершена 400 Bad Request в 7MS (Просмотров: 0.3ms | ActiveRecord: 0.0ms) I не понимаете, обрабатывается ли 'tournament_controller.rb'? – Robert

 Смежные вопросы

  • Нет связанных вопросов^_^