我有一个这种格式的 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] == ""