【问题标题】:Redmine Plugin - requires restart after every code changeRedmine Plugin - 每次代码更改后都需要重新启动
【发布时间】:2012-03-06 13:33:06
【问题描述】:

我正在研究 redmine 上的一些插件(使用 Ruby on Rail 编写的项目管理 Web 应用程序)。

对于我对插件代码(比如 view.html.erb 文件)所做的每一次更改,我都必须重新启动 redmine(应用程序)服务器。这是因为,它默认在生产模式下运行。

会在开发模式下运行应用程序,解决这个问题吗?

如果是,我如何更改其运行模式或覆盖此行为,以便每个请求都加载类(是的,这不会有效,但对开发有好处)并且对代码的更改会在不重新启动的情况下反映应用程序服务器(本例中为redmine)

我尝试将此行添加到 environment.rb 文件中

ENV['RAILS_ENV'] ||= 'development'

还尝试了下面发布的答案/cmets,但它们并没有解决我的问题。

任何可行的解决方案都会有很大帮助。

谢谢。

其他相关信息:

它使用 Rails 2.3.14 并使用 bitnami 堆栈安装

【问题讨论】:

  • 你有没有经历过[如何强制我的插件在每个请求时重新加载?][1] [1]:stackoverflow.com/questions/4713066/…
  • @Hardik bhai,我会仔细阅读并发表评论。谢谢回复。

标签: ruby-on-rails ruby-on-rails-3 redmine


【解决方案1】:

在 Rails 2.3 上自动重新加载插件:

在 config/environment.rb 上添加 config.reload_plugins = true。它必须在那里,由于 Rails 启动步骤,您不能将其放在 config/environments/development.rb 上。您可以添加if RAILS_ENV = 'development'

配置/环境.rb

config.reload_plugins = true  

在插件的 init.rb 中,添加以下行: 初始化.rb

ActiveSupport::Dependencies.explicitly_unloadable_constants = 'YourPluginModuleName' 

就是这样。完成后不要忘记将其删除。

【讨论】:

  • 谢谢您的回复.. 只是一个简单的问题-'MyPluginModuleName' 是否与 _helper.rb 文件中的相同?我也没有在 config/environments/development.rb 中添加任何内容,我只将这些行放在 config/environment.rb 中
  • 我假设你的插件是一个模块,比如module BacklogsPlugin。因此,您需要输入“MyPluginModuleName” - 您想要自动重新加载的所有模块
  • 非常感谢您的快速评论.. 还有如何在自动重新加载模式下运行 redmine 核心本身.. 说我在 redmine 中更改了一些代码,现在这个更改代码的效果应该反映在页面刷新,而不是重启redmine服务器??
  • 这应该是开发模式下的默认行为,无论如何这是 config/development.rb 中的config.cache_classes = false
  • 您希望 Rails 不在生产环境中缓存您的类吗?
猜你喜欢
  • 1970-01-01
  • 2023-04-04
  • 2018-07-14
  • 2011-06-20
  • 2014-03-13
  • 2019-07-21
  • 2016-01-16
  • 2014-08-29
  • 1970-01-01
相关资源
最近更新 更多