2011-05-04 30 views
5

我正在開發一個由兩個主要組件組成的Rails 3的gem。第一個是一個軌道生成器,它爲軌道項目增加了一些新的文件/文件夾。第二個是加載所有上述文件(一些使用我的DSL的ruby類)以及一部分默認Rails堆棧的運行時環境。基本上,它是你期望能夠在rails c中訪問的所有東西,無線路由,控制器,幫助器和視圖。加載Rails環境的正確方法是什麼,除了特定的部分?加載Rails 3應用程序的部分

旁註:我很想看看有關需要Rails應用程序的任何好文章。

回答

1

我不完全清楚你的意思,或者如果這會有所幫助,但它聽起來與我在我寫的實用程序中做的事情類似。

我的工具加載環境,像這樣:

#!/usr/bin/env ruby 
require File.expand_path('../../config/environment', __FILE__) 

的要求../../config/boot會導致您的Gemfile定義加載寶石。所以如果你只需要部分Rails堆棧,那麼你只需要Gemfile中的那部分堆棧。

這給我我的鐵軌上下文,訪問模型和其他資源。

(UPDATE) 要跳過軌道的部件疊加 - 看看它是如何做換出的ActiveRecord: http://www.mongodb.org/display/DOCS/Rails+3+-+Getting+Started

希望有所幫助。

+0

我更關心的是/不是/載荷的零件。我知道需要'配置/應用' – bloudermilk 2011-05-04 18:27:04

+0

只是注意到你有關改變Gemfile的一點。不幸的是,這對我不起作用,因爲我仍然需要Rails服務器正常運行 – bloudermilk 2011-05-10 22:45:37

+0

你想運行哪些部分vs不運行?特定應用部分(即特定型號/控制器/等)?或Rails堆棧的特定部分? – johnmartirano 2011-05-10 23:02:37

1

也許你需要Rails::Initializable

你可以做這樣的:

initializer "active_support.initialize_whiny_nils" do |app| 
    require 'active_support/whiny_nil' if app.config.whiny_nils 
end