当前位置:  开发笔记 > 编程语言 > 正文

在Ruby on Rails中识别GET和POST参数

如何解决《在RubyonRails中识别GET和POST参数》经验,为你挑选了6个好方法。

在Ruby on Rails中从控制器中识别和分离GET和POST参数的最简单方法是什么,这相当于PHP中的$ _GET和$ _POST变量?



1> John Topley..:

您可以使用request.get?request.post?方法来区分HTTP Gets和Posts.

请参阅http://api.rubyonrails.org/classes/ActionDispatch/Request.html


他们改变了网站结构,所以现在这是正确的链接:http://api.rubyonrails.org/classes/ActionDispatch/Request.html

2> Ben Scofield..:

我不知道Rails中有任何方便的方法,但你可以直接访问查询字符串来解析那里设置的参数.类似于以下内容:

request.query_string.split(/&/).inject({}) do |hash, setting|
  key, val = setting.split(/=/)
  hash[key.to_sym] = val
  hash
end


但是......问题不在于确定请求类型,而且这与该代码的作用并不相同.正如我理解的那样,它是(释义)"如何从get和post中分别检索参数?" 猜猜我的阅读理解力远远超出了我的标准......
这超过了顶部; 得到?,发帖?甚至request_method是确定请求类型的更好选择.
向下投票在设计上是匿名的,没有人有权得到解释。最好的办法是耸耸肩继续前进。

3> wiseland..:

你可以使用:

request.POST

request.GET



4> Ryan Barton..:

请求对象上有三个非常轻微记录的哈希访问器:

request.query_parameters - 作为查询字符串的一部分发送,即在?之后?

request.path_parameters - 通过路由从URL解码,即控制器,动作,id

request.request_parameters - 所有参数,包括上面以及作为POST主体的一部分发送的任何参数

您可以Hash#reject根据需要使用仅限POST的参数.

资料来源:http://guides.rubyonrails.org/v2.3.8/action_controller_overview.html第9.1.1节

我查看了一个旧的Rails 1.2.6应用程序,这些访问器也存在.



5> webmat..:

如果要检查请求的类型以防止在使用错误的方法时执行任何操作,请注意您也可以在routes.rb文件中指定它:

map.connect '/posts/:post_id', :controller => 'posts', :action => 'update', :conditions => {:method => :post} 

要么

map.resources :posts, :conditions => {:method => :post} 

现在只有在您有效发布帖子时才会调用PostsController的更新方法.查看资源文档.



6> jesse reiss..:

GET和POST参数之间存在差异.POST HTTP请求仍然可以具有GET参数.

GET参数是URL查询参数.

POST参数是HTTP请求正文中的参数.

您可以从request.GET和request.POST哈希中单独访问这些内容.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有