我有一个这种格式的 URL http://0.0.0.0:3000/#&ui-state=dialog。我想检查是否存在,ui-state以便我可以适当地呈现页面。我试过这个
params.has_key?(:'ui-state')
但它没有用。
如何检查 ui-state 是否存在?
解决方案
我正在使用 jQuery 手机。看起来像 url 参数的东西实际上是 jQuery mobile 的内部属性。这就是为什么没有?.
我有一个这种格式的 URL http://0.0.0.0:3000/#&ui-state=dialog。我想检查是否存在,ui-state以便我可以适当地呈现页面。我试过这个
params.has_key?(:'ui-state')
但它没有用。
如何检查 ui-state 是否存在?
解决方案
我正在使用 jQuery 手机。看起来像 url 参数的东西实际上是 jQuery mobile 的内部属性。这就是为什么没有?.
如果您发布的部分示例 URL ( http://.../&ui-state=dialog) 是您的实际 URL,则它是不正确的。您的查询字符串必须以 a 开头,?如http://.../?ui-state=dialog. &无法启动查询字符串。
因为这是来自 jQuery 而不是真正的 URL 参数,所以它不会出现params在 Rails 中。相反,您需要将其解析为request.url:
ui_state = /&ui-state=([a-z]+)$/.match(request.url)
puts ui_state[1]
由于&ui-state跟随 url 散列#,它不会在request.url. 哈希严格来说是浏览器使用的客户端组件,不会在 HTTP 请求中发送到服务器。
你试过params[:ui-state] == dialog或params[:ui-state].blank?/params[:ui-state] == ""