检查url参数是否存在并在Rails中进行approprietly渲染

时间:2012-04-06 23:02:23

标签: ruby-on-rails ruby-on-rails-3

我有一个格式为http://0.0.0.0:3000/#&ui-state=dialog的网址。我想检查ui-state的存在,以便我可以适当地呈现一个页面。我试过这个

params.has_key?(:'ui-state')

但它不起作用。

如何检查ui-state的存在?


解决方案

我正在使用jQuery mobile。看起来像url参数实际上是jQuery mobile的内部属性。这就是为什么没有?

的原因

2 个答案:

答案 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]

UPDATE2

由于&ui-state跟随网址哈希#,因此request.url中无法使用它。散列严格地是浏览器使用的客户端组件,不会在HTTP请求中发送到服务器。

答案 1 :(得分:1)

您是否尝试过params[:ui-state] == dialogparams[:ui-state].blank? / params[:ui-state] == ""