Railsroutes.rb求助
Rails routes.rb assistance
在此先感谢您的帮助!!
我在routes.rb
:
get 'api/streets:name' => 'streets#get_by_name', as: "get_by_name"
我在streets_controller.rb
:
ids = params[:name]
我在 Javascript:
const params = encodeURI('name[]=1&name[]=2')
fetch(`/api/streets?${params}`)
当我从前端调用 api 时,我收到以下日志消息:
Started GET "/api/streets?name%5B%5D=2&name%5B%5D=5" for 127.0.0.1 at 2019-09-06 17:10:59 -0700
Rendering pages/index.html.erb within layouts/application
Processing by PagesController#index as */*
Parameters: {"name"=>["2", "5"], "path"=>"api/streets"}
Rendered pages/index.html.erb within layouts/application (7.1ms)
Rendering pages/index.html.erb within layouts/application
为什么使用 PagesController 而不是 StreetsController?
在我在 api 上获取、发布、放置和删除的所有其他情况下,路由器知道要使用哪个控制器。这只是我在使用数组参数时路由到错误控制器的一种情况。
这可能只是我做过的蠢事。
您的路线需要这样的路径:/api/streets123
- 其中 params[:name]
等于 "123"
不,这不是错字。
你应该只使用:
get 'api/streets' => 'streets#get_by_name', as: "get_by_name"
如果您需要强制存在 :name
参数,那么您应该使用 the :constraints
option.
在此先感谢您的帮助!!
我在routes.rb
:
get 'api/streets:name' => 'streets#get_by_name', as: "get_by_name"
我在streets_controller.rb
:
ids = params[:name]
我在 Javascript:
const params = encodeURI('name[]=1&name[]=2')
fetch(`/api/streets?${params}`)
当我从前端调用 api 时,我收到以下日志消息:
Started GET "/api/streets?name%5B%5D=2&name%5B%5D=5" for 127.0.0.1 at 2019-09-06 17:10:59 -0700
Rendering pages/index.html.erb within layouts/application
Processing by PagesController#index as */*
Parameters: {"name"=>["2", "5"], "path"=>"api/streets"}
Rendered pages/index.html.erb within layouts/application (7.1ms)
Rendering pages/index.html.erb within layouts/application
为什么使用 PagesController 而不是 StreetsController?
在我在 api 上获取、发布、放置和删除的所有其他情况下,路由器知道要使用哪个控制器。这只是我在使用数组参数时路由到错误控制器的一种情况。
这可能只是我做过的蠢事。
您的路线需要这样的路径:/api/streets123
- 其中 params[:name]
等于 "123"
不,这不是错字。
你应该只使用:
get 'api/streets' => 'streets#get_by_name', as: "get_by_name"
如果您需要强制存在 :name
参数,那么您应该使用 the :constraints
option.