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

前端之家收集整理的这篇文章主要介绍了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之间进行转换.

猜你在找的Ruby相关文章