小编Fra*_*tia的帖子

重新加载rails中间件而无需在开发中重新启动服务器

我有一个带有中间件的rails 4应用程序位于lib/some/middleware.rb,它当前通过初始化器注入到堆栈中,如下所示:

MyApp::Application.configure.do |config|
    config.middleware.use 'Some::Middleware'
end
Run Code Online (Sandbox Code Playgroud)

不幸的是,每当我改变一些东西,我需要重新启动服务器.如何在开发模式下的每个请求上重新加载它?我已经看到类似的问题,在to_prepare块中使用自动加载或包装代码重新加载lib代码,但我不确定如何在这种情况下应用它.

谢谢, - FJM

更新#1

如果我尝试删除中间件,然后在to_prepare块中重新添加它,我会收到错误"无法修改冻结的数组".

rack ruby-on-rails rack-middleware ruby-on-rails-4

9
推荐指数
1
解决办法
1712
查看次数

为什么irb在赋值方法的情况下回显赋值的右侧而不是返回值?

令人惊讶的是,在所有其他情况下,irb将回显方法的返回值.为什么通过setter的赋值行为不同?

我正在使用Ruby 2.2.2.

irb(main):001:0> def x=(value); puts "puts_from_x"; "returned_string_from_x"; end
=> nil

irb(main):002:0> self.x = 3
puts_from_x
=> 3
Run Code Online (Sandbox Code Playgroud)

更新

我突然意识到它与rhs相呼应,因为那是实际的回报值.为什么是这样?

ruby irb

3
推荐指数
1
解决办法
87
查看次数