Rails:使CGI :: escape在模型中工作?

时间:2013-12-28 17:30:55

标签: ruby-on-rails ruby ruby-on-rails-4

我在模型中尝试了以下两种方法:

CGI.escape(default_url)

CGI::escape(default_url)

每次我收到此错误:

undefined method 'encoding' for nil:NilClass

2 个答案:

答案 0 :(得分:0)

必须执行default_url.to_s,因为在某些情况下它已设置为nil

答案 1 :(得分:0)

检查:ActiveSupport#to_query

# File activesupport/lib/active_support/core_ext/object/to_query.rb, line 8
def to_query(key)
  require 'cgi' unless defined?(CGI) && defined?(CGI::escape)
  "#{CGI.escape(key.to_param)}=#{CGI.escape(to_param.to_s)}"
end