Rails rails 在 cotroller 的 action 中 如何获取路由请求的方式?

ginchenorlee · 2013年04月07日 · 最后由 ginchenorlee 回复于 2013年04月08日 · 3853 次阅读

若 我用 post 或 get 方式 请求一个 cotroller 的 action , 我在该 action 中 如和获取 它请求的方式?

request.post?,

你把代码贴出来吧。我就是这么写的,没问题。

你在路由配的是什么不就是是什么了么

#4 楼 @guyanbiao 比如 我一个方法 用 post 和 get 都可以请求,我要知道 是每一次 是什么在请求

#3 楼 @chenge 这样写不对的,我问题解决了,每当 一个路由请求一个 action 时,都有一个当前对象,这个对象里面就包含这个请求的方式,我 p 了一下 这个 self , 过然就找到了,代码如下:

def operate

   p self  # 这个里面的结构很清晰
   p self.request.env
   p self.request.env["REQUEST_METHO"] # 这个就是我们想要的   
   p env["REQUEST_METHO"]  #可以之前打印这个变量
   debugger

   @records = StaffRecordDecorator.new( StaffRecord.query(params,current_user.dept_id ).paginate(:page => params[:page])  )
   render "common/_table_show_records",locals:{:records => @records },:layout => false if env["REQUEST_METHOD"].eql?("POST")
 end

#可以直接打印这个变量

request.request_method

顶 1 楼 和 9 楼。

request.request_methodrequest.request_method_symbol 返回你要的结果,它们其实会去取 env["REQUES_METHOD"]。而 get?, post?, put?, delete? 等都可以直接用来判断。

#10 楼 @ashchan 这个够用,谢谢:-P

在 pry 调试时,打印request可以输出很多信息,包括 http 的信息

#6 楼 @Rei 很坏很坏的问道

需要 登录 后方可回复, 如果你还没有账号请 注册新账号