Я ломал голову, пытаясь понять что-то, что должно быть чрезвычайно простым, поэтому я уверен, что просто что-то упускаю из виду, и свежий взгляд может быть полезен, поскольку весь мой код, похоже, сливается воедино. Я пытаюсь создать тщеславные URL-адреса для сайта, который позволяет пользователям создавать категории, а затем публиковать соответствующие истории на основе этих категорий. Так, например, я хотел бы, чтобы пользователи имели доступ к /categories/movies для просмотра раздела фильмов. Если я настрою его на использование идентификатора категории /categories/1, он работает без проблем. По какой-то причине rails продолжает пытаться использовать параметр id для поиска категории, а не параметр title. Я использую Ruby 2.0.0 и Rails 4.0. Я читал, что метод find_by скоро станет устаревшим, поэтому, если есть лучший способ справиться с этим, это было бы здорово. Вот соответствующий код:
Категории Контроллер
def show
@categories = Category.find_by_title(params[:title])
@category = Category.find_by_title(params[:title])
@posts = Post.where(category: set_category).all
end
Маршруты.рб
resources :categories
get "/categories/:title" => "categories#show"
Считывание терминала при рендеринге страницы
Processing by CategoriesController#show as HTML
Parameters: {"id"=>"Movies"}
Просто повторюсь, параметры должны читаться как {"title"=>"Movies"}, а не id. Как я уже сказал, я уверен, что это что-то чрезвычайно простое, что я упустил из виду. Любая помощь будет оценена по достоинству. Спасибо.