1

mongoid を使用して、メイン アプリケーションにさらに追加されるスタンドアロンのレール エンジン アプリケーションを作成しています。だから、私はこのように始めました。

rails plugin new some_engine --mountable --skip-active-record

次に、gem ファイルで次のようにします。

gem 'mongoid', "~> 3.0.15"

次に、mongo 構成ファイルを生成するために次のコマンドを実行します。

some_engine\test\dummy>rails g mongoid:config

test/dummy/config フォルダーの下に mongoid.yml を生成します

モデルを生成すると、まだアクティブなレコードが呼び出されます

some_engine>rails generate scaffold post title:string

出力が得られます:

 invoke  active_record
 create    db/migrate/20121219170013_create_some_engine_posts.rb
...........

次に、 script/rails フォルダーの下にある rails ファイルを次のように変更します。

require 'rails/all'

require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "sprockets/railtie"
require "rails/test_unit/railtie"

次に、何かを生成しても、モンゴイドはまだ呼び出されません

some_engine>rails generate model post

ここでは何も起こりません。

走るときも

some_engine>rails generate scaffold post title:string

 invoke  resource_route.....

Rails Engine で mongoid を使用するには、ここで何かが足りないのでしょうか?

4

2 に答える 2

8

mongoid がまだロードされていないようです。申し訳ありませんが、再現する時間がありません。ファイルで明示的に mongoid を要求するとどうなりengine.rbますか?

于 2012-12-19T20:25:43.787 に答える
1

Rails 4 では、active_resource が必要ない場合。生成されたプラグイン アプリには、bin/rails にロードされた rails モジュールがあります。


require "action_controller/railtie"
require "action_mailer/railtie"
require "sprockets/railtie"
require "rails/test_unit/railtie"
require "mongoid"
require 'rails/engine/commands'

于 2014-01-07T13:50:11.263 に答える