【问题标题】:Rails routing forcing param to be presentRails 路由强制参数存在
【发布时间】:2018-05-25 03:20:45
【问题描述】:

我对 ruby​​ api 开发还很陌生,并且在我的 routes.rb 中创建了以下端点

get "/users/active_users/:since"

但是,当没有给出参数时,我希望参数默认为某个值。我该如何执行?另外,我想强制该参数是一个整数而不是 alpha/alpha-numeric。感谢您的帮助!

【问题讨论】:

  • 用可选参数创建一个路由,在stackoverflow.com/a/39241338/5934752查看我的答案,然后在控制器中检查参数是否存在且是否为整数
  • 成功了!谢谢:)

标签: ruby-on-rails ruby routing


【解决方案1】:
get "/users/active_users/:since"

通过强制此路由提供 params[:since] ,否则它将抛出错误 not routes matches

所以在这里我建议你制作路线

get "/users/active_users"

由于它是get 类型的请求,因此不会影响更多,您可以在查询中附加params[:since],使用如下路由:-

/users/active_users?since=1999

在你的控制器上你会得到params[:since] = 1999

据我所知,它不能强制路由只接受整数params,但它可以在控制器端处理

params[:since].is_a? Integer
=> true

或者

params[:since].to_i

【讨论】:

  • 绝对有帮助,谢谢!
  • @Nick 如果对您有帮助,您能接受/支持答案吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-17
  • 1970-01-01
  • 2013-09-27
  • 1970-01-01
  • 1970-01-01
  • 2013-07-14
  • 1970-01-01
相关资源
最近更新 更多