2012-05-22 64 views
1

我有一個Rails應用程序(3.2.3版),我想成爲一些是故意在公衆目錄的靜態文件架::目錄服務目錄。這個應用程序只是一個正在進行的工作,我只用這個比較我的反應,因爲我正在與開發進展。如何使用Rails的下3.2.3

我已經成立了,我要和Rails的自動加載以下小機架應用:

APISchemaSampleServer = Proc.new do |env| 
    Rack::Directory.new(Rails.root + "/spec/support/schema_definitions") 
end 

在我的路線文件我已經安裝在機架小應用:

mount APISchemaSampleServer, at: '/samples' 

我目錄spec/support/schema_definitions是一個現有目錄,其中包含一些我在我的Rails應用程序中瀏覽/samples時想要提供的文件。

當訪問上面的路徑,但是我收到以下錯誤:

NoMethodError 

undefined method `[]' for nil:NilClass 

我已經瀏覽Rack::Directory documentation和嘗試了不同的方法,然而,這似乎仍然沒有奏效。

任何幫助是極大的讚賞。先謝謝你。

回答

4

找出問題所在。我忘記撥打APISchemaSampleServer內的Rack::Directory組件。正確的實現看起來是這樣的:(注意額外的.call(env)法)

APISchemaSampleServer = Proc.new do |env| 
    Rack::Directory.new('spec/support/schema_definitions').call(env) 
end 

此外,從也可以被刪除的Rack::Directory構造函數參數Rails.root前綴,因爲Rack::Directory中查找來自當前Rack應用程序的路徑。

+0

用於示出在'development' ENV在Rails應用中的一些dev的文檔非常有用的。謝謝! – jackyalcine

相關問題