0

我正在尝试在 Windows Vista/7 上的 JRuby 中自动重新加载 Sinatra 项目。我正在使用来自 Sinatra-contrib 的 Sinatra::Reloader。不幸的是,它似乎只适用于控制器。对模型和助手的任何更改都不会重新加载。

我是在错误地使用also_reload 还是什么?

这是我的项目的样子:/app.rb

require 'sinatra'
require 'sinatra/reloader'
require 'json'

class App < Sinatra::Application
  enable :sessions
  enable :logging
  register Sinatra::Reloader
  also_reload "models/*.rb"
  also_reload "helpers/*.rb"

  helpers do
    include Rack::Utils
    alias_method :h, :escape_html
  end
end

require_relative 'helpers/init'
require_relative 'models/init'
require_relative 'controllers/init'

/控制器/init.rb

enable :sessions

require_relative 'auth'
require_relative 'customer'
require_relative 'policy'
require_relative 'forms'

/helpers/init.rb

require_relative 'auth_helper'
require_relative 'customer_helper'
require_relative 'flash_helper'
require_relative 'form_helper'
require_relative 'policy_helper'

/models/init.rb

require 'lib/sqljdbc4.jar'
require 'sequel'
require 'logger'

Java::com.microsoft.sqlserver.jdbc.SQLServerDriver
url = 'foo'

DB = Sequel.connect(url)
DB.loggers << Logger.new($stdout)

Sequel.inflections do |inflect|
  inflect.clear :all
end

files = [
:customer,
:customer_email,
:phone_number ]

files.each do |f|
  require_relative f.to_s
end
4

1 回答 1

0

在您当前的实现下,假设您在helpers/auth_helper.rb. 该文件被重新加载,但由于helpers/init.rbsinatra-reloader 不会重新加载,因此您不会看到更改。你试过shotgun宝石吗?

于 2012-05-31T07:54:14.310 回答