使用路由约束更新到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 hash永远不会获取许可证参数,或者与此无关的商品名称。
如果我检查该动作中的request.query_string
,我所看到的只是"edd_action=activate_license"
,所以我不知道其余参数的去向。
有人可以帮忙吗?更改URL参数不是一个选择,因为只有这样才能与旧版软件集成。