Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 Hello World rack middleware with rails 3:如何处理所有请求的主体_Ruby On Rails 3_Rack_Middleware_Rack Middleware - Fatal编程技术网

Ruby on rails 3 Hello World rack middleware with rails 3:如何处理所有请求的主体

Ruby on rails 3 Hello World rack middleware with rails 3:如何处理所有请求的主体,ruby-on-rails-3,rack,middleware,rack-middleware,Ruby On Rails 3,Rack,Middleware,Rack Middleware,我想尝试一个简单的机架中间件“hello world”,但我似乎被卡住了。 似乎主sytax已更改,因为某些示例使用以下代码: require 'rack/utils' class FooBar def initialize(app) @app = app end def call(env) status, headers, body = @app.call(env) body.body << "\nHi from #{self.c

我想尝试一个简单的机架中间件“hello world”,但我似乎被卡住了。 似乎主sytax已更改,因为某些示例使用以下代码:

require 'rack/utils'

class FooBar

  def initialize(app)
    @app = app
  end

  def call(env)
    status, headers, body = @app.call(env)
         body.body << "\nHi from #{self.class}"
         [status, headers, body]
  end
end
需要“机架/utils”
福巴级
def初始化(应用程序)
@app=app
结束
def呼叫(环境)
状态、标题、正文=@app.call(env)

body.body这应该满足您的要求:

# in config/application.rb
config.middleware.use 'FooBar'

# in config/initializers/foo_bar.rb
class FooBar
  def initialize(app)
    @app = app
  end

  def call(env)
    status, headers, response = @app.call(env)
    [status, headers, response.body << "\nHi from #{self.class}"]
  end
end
config/application.rb中的
#
config.middleware.use'FooBar'
#在config/initializers/foo_bar.rb中
福巴级
def初始化(应用程序)
@app=app
结束
def呼叫(环境)
状态、标题、响应=@app.call(env)

[状态、标题、响应.bodyRails3.2.12+

答案不适用于Rails 3.2.12+

这个是:

# in config/application.rb
config.middleware.use 'FooBar'

# in config/initializers/foo_bar.rb
class FooBar
  def initialize(app)
    @app = app
  end

  def call(env)
    status, headers, response = @app.call(env)
    response.body += "\nHi from #{self.class}"
    # response.body << "..." WILL NOT WORK
    [status, headers, response]
  end
end
config/application.rb中的
#
config.middleware.use'FooBar'
#在config/initializers/foo_bar.rb中
福巴级
def初始化(应用程序)
@app=app
结束
def呼叫(环境)
状态、标题、响应=@app.call(env)
response.body+=“\nHi from#{self.class}”
#答复.正文
# in config/application.rb
config.middleware.use 'FooBar'

# in config/initializers/foo_bar.rb
class FooBar
  def initialize(app)
    @app = app
  end

  def call(env)
    status, headers, response = @app.call(env)
    response.body += "\nHi from #{self.class}"
    # response.body << "..." WILL NOT WORK
    [status, headers, response]
  end
end