ruby-on-rails-3 – 为什么`request.method`返回一个字符串(而不是符号)?

我认为request.method应该返回一个符号,如:get,:put等?
但是在控制器动作中,我得到GET作为一个字符串!

难道我做错了什么?

在routes.rb中:

resources :posts
  member do
    get 'some_action'
  end
end

在.erb视图中:

<%= link_to "Some Action",some_action_post_path %>

在PostsController中:

def some_action
  p request.method               # => "GET"
  p request.method.class.name    # => "String"
  if request.method == :get
    #does not get called
  end
end

PS.我在Ruby 1.8.7 p330上使用Rails 3.0.3

解决方法

按设计工作 – 它应该返回一个字符串:) 所以,使用字符串.不同的主题:您可以分别使用to_s和to_sym在字符串和syms之间进行转换.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...