Ruby on rails 具有特定类别的路由

Ruby on rails 具有特定类别的路由,ruby-on-rails,Ruby On Rails,我已经建立了一个食品数据库和一个类别数据库,我可以成功地获得该页面 http://localhost:3000/foods/category?id=1 现在我想添加一个id为1的路由到这个页面,我如何才能做到这一点?以下方法不起作用 get 'menu' => 'foods#category#1' 如果我想在另一个控制器中链接到它,我应该怎么做?简单地加上 :controller 不起作用 谢谢获取“/menu”=>“食物#菜单” 这将把它发送到FoodsController(f

我已经建立了一个食品数据库和一个类别数据库,我可以成功地获得该页面

http://localhost:3000/foods/category?id=1
现在我想添加一个id为1的路由到这个页面,我如何才能做到这一点?以下方法不起作用

get 'menu' => 'foods#category#1' 
如果我想在另一个控制器中链接到它,我应该怎么做?简单地加上

:controller 
不起作用

谢谢

获取“/menu”=>“食物#菜单”

这将把它发送到FoodsController(foods_controller.rb)。 这会将其发送到特定操作“菜单”,即

class FoodsController
现在,如果要将其发送到OthersController(others_controller.rb),只需按如下方式更改路由:

获取“/菜单”=>“其他菜单”


你不应该通过你刚才讨论的方式传递身份证

在食品控制器中创建一个名为menu的自定义操作,该操作返回id=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

您只需将请求的默认参数添加到默认键,如下所示:

get 'menu' => 'foods#category', defaults: {id: 1}
您还可以指定输出格式(例如:json)

默认情况下,第二个将响应json

希望这有帮助

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