首页 > 解决方案 > Rails 5.1 路由约束不传递参数

问题描述

更新到带有路由约束的 Rails 5.1 后出现问题。

基本上我的路线是匹配的,但没有参数被传递给控制器​​动作。这段代码已经工作了一段时间,但现在它没有,我有点坚持为什么。

点击网址

localhost:3000/?edd_action=activate_license&item_name=ProductA&license=123

路线

get '/' => 'api/v1/legacy_licenses#activate', constraints: { query_string: /edd_action=activate_license/ }

我的动作代码看起来像

def load_license_key
    if params[:license]
     ...
    end
  end

问题是 params 哈希永远不会选择许可证参数,或者项目名称之一。

如果我检查request.query_string那个动作,我看到的只是"edd_action=activate_license" 我不知道其余参数的去向。

任何人都可以帮忙吗?更改 URL 参数不是一种选择,因为它只能与旧软件集成。

标签: ruby-on-railsruby

解决方案


推荐阅读