ruby-on-rails 如何为该网址创建路由?

2ic8powd  于 2022-12-20  发布在  Ruby
关注(0)|答案(1)|浏览(132)
GET /bids?countries=us,uk&categories=finance,sports&channels=ca,ga

预期的响应是:

{
  "bids": [
    { 'country': 'us', 'category': 'finance', 'channel': 'ca', 'amount': 4.0 },
    { 'country': 'us', 'category': 'finance', 'channel': '2ga', 'amount': 2.0 },
    { 'country': 'us', 'category': 'sports', 'channel': 'ca', 'amount': 2.0 },
    { 'country': 'us', 'category': 'sports', 'channel': 'ga', 'amount': 2.0 },
    { 'country': 'uk', 'category': 'finance', 'channel': 'ca', 'amount': 1.0 },
    { 'country': 'uk', 'category': 'finance', 'channel': 'ga', 'amount': 1.0 },
    { 'country': 'uk', 'category': 'sports', 'channel': 'ca', 'amount': 3.0 },
    { 'country': 'uk', 'category': 'sports', 'channel': 'ga', 'amount': 3.0 }
  ]
}

如何使路线为这个网址请帮我-任何更有经验的人知道我在做什么,使路线?。提前感谢。

guykilcj

guykilcj1#

这只是一个普通的索引路由,带有一些额外的查询字符串参数来过滤资源,实际上不需要做任何特殊的操作。

resources :bids, only: [:index]
class BidsController < ApplicationController
  # GET /bids
  # GET /bids?countries=us,uk&categories=finance,sports&channels=ca,ga
  def index
    @bids = Bid.all
    # @todo implement filters
  end
end

当匹配请求URI和路由时,Rails通常会忽略查询字符串参数,除非它们对应于定义的路由中的命名占位符-例如GET /bids?id=1将匹配GET /bids/:id
查询字符串参数在params对象中可用,就像从URI中的占位符中提取的参数一样,其解析方式与正文中的formdata相同。

相关问题