尝试在 Sinatra 中返回响应时出现 NoMethodError。这是错误:
/contact/book-me.php 处的 NoMethodError
#<String:0x00000001911418> 的未定义方法 `body='
/home/kerrick/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb in body
response.body = value
/home/kerrick/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb in invoke
body res
/home/kerrick/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb in call!
invoke { dispatch! }
/home/kerrick/.rvm/gems/ruby-1.9.3-p194/gems/sinatra-1.3.2/lib/sinatra/base.rb in call
dup.call!(env)
/home/kerrick/.rvm/gems/ruby-1.9.3-p194/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb in call
status, headers, body = @app.call(env)
[...]
这是相关代码:
# Snipped, but basically populate the @error hash if the form wasn't filled out right
if @error.length == 0
#Snipped, but basically handle the success case
else
@response = ''
@error.each do |x, y|
@response << "<li>#{y}</li> \n"
end
return [400, @response]
end
为什么会这样?