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