rails 将多个参数传递给控制器

rails passing multiple params to controller

我有查询"Service"型号的路线:

resources :services, :path => 'services'

当 GET 请求路径 /services/sn-uber 时,我获取参数 sn(服务名称)并在数据库中找到它。如何在那里添加另一个参数,如 sd(service-district)?

例如 /services/sn-uber/sd-brooklyn/services/sd-brooklyn 所以任何参数都可以省略。

在你的路线中添加这样的东西:

get 'services(/sn/:sn_name)(/sd/:sd_name)', controller: 'services', action: 'show'

您的 url 看起来像:

  • /services/sn/uber/sd/brooklyn
    • params 将是 sn_namesd_name
  • /services/sn/uber
    • 参数将是 sn_name
  • /services/sd/brooklyn
    • 参数将是 sd_name

如果你想保持你的 url 那样 /services/sn-uber/sd-brooklyn:

get 'services(/:sn_name)(/:sd_name)', controller: 'services', action: 'show'