2015-04-29 5 views
0

Я создал базу данных продуктов и базу данных категорий, и я мог бы получить страницу успешно.маршрутизация со специальной категорией

http://localhost:3000/foods/category?id=1 

Я хотел бы добавить маршрут на эту страницу с id = 1, как я могу это сделать? Не работает

get 'menu' => 'foods#category#1' 

А если мне нужна ссылка на него в другом контроллере, что мне делать? Просто добавьте

:controller 

не работает.

Благодаря

ответ

0

прибудут '/ меню' => 'еда # меню'

это будет отправить его в FoodsController (foods_controller.rb). это будет отправить его к конкретным действиям «меню», то есть,

class FoodsController < ApplicationController 

    def menu 
    @category = Category.find(1) 
    end 

end 

Теперь, если вы хотите, чтобы отправить его в OthersController (others_controller.rb) просто изменить маршрут следующим образом:

получить «/ menu '=>' others # menu '

Вам не следует передавать идентификатор через маршруты так, как вы обсуждали.

+0

Работает! Большое спасибо. – crystal

+0

Я бы принял ответ Маркос. Это было правильнее. – vereecjw

0

Создание пользовательских действий в рамках продуктов питания контроллера называется меню, которое возвращает категорию с идентификатором = 1

get 'menu', to: 'foods#menu' 

def menu 
    @menu = Food.find_by_id(1) 
end 

Или, если вы хотите категории как действие

get 'category', to: 'foods#category' 

def category 
    @category= Food.find_by_id(1) 
end 
0

Вам просто нужно добавить параметры по умолчанию для запроса к ключу по умолчанию:

get 'menu' => 'foods#category', defaults: {id: 1} 

Вы также можете s (например, json)

get 'menu' => 'foods#category', defaults: {id: 1, format: :json} 

Этот второй ответ будет отвечать на json по умолчанию.

Надеюсь, что это поможет.

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