ruby-on-rails – 获取原始参数而不是“加工成哈希”版本
Rails 3问题.
如果我发送这样的请求PUT http://myapp/posts/123?post [title] =你好 然后在我的控制器中我得到params = {:id => 123,:post => {:title => “你好”}} 这通常很好,通常用于例如Post.create(params [:post]) 但是,在这种情况下,我需要访问params的’raw’形式,所以我可以命令它们拉出值,将它们全部作为简单的字符串处理,即我希望它们列出,所以param名称是“post [标题]“和参数值是”你好“. 有没有办法得到这些价值观?我认为可能有一种请求的方法,它有原始的拉链形式的参数但我找不到一个. 我试图将哈希转换回带有to_param的字符串,但这看起来很脏但可能是不必要的. 作为奖励,我希望它忽略:id参数,字面上只是参加了后面的部分?在原始请求中.事实上,如果我可以回到原始请求字符串,即“http:// myapp / posts / 123?post [title] = hello”那么那样做:我可以分开吗?并从那里拿走它.我刚刚想到我可以从标题中得到它.在此期间,如果有人知道更好的方式,请告诉我,请:) 感谢任何建议 – 最多 解决方法
请不要手工解析.从
Rails request获取URI:
url = request.url # Or,depending on the Rails version and stack url = request.request_uri # Or even url = request.scheme + '://' + request.host_with_port + request.fullpath request.url的返回值似乎取决于你的服务器堆栈,request.request_uri应该修复它,但似乎不存在于Rails 3.1中.第三个“自己构建”方法应该在各处产生一致的结果.叹. 然后,一旦你有了URI,使用 u = URI.parse(url) q = URI.decode_www_form(u.query) # if u.query was "a=b&c=d&a=x" then q is # [["a","b"],["c","d"],["a","x"]] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |