リソースを生成しようとしていますが、Active_recordへのすべての参照を削除し、databse.ymlファイルを削除しました。
Railsサーバーは正常に起動しますが、モデルを生成しようとすると、次のようになります。
rails g resource contact
次のエラーが発生します。
必要なオプションに値が提供されていません'--orm'
リソースを生成するときにデータベースを指定しない方法はありますか?
リソースを生成しようとしていますが、Active_recordへのすべての参照を削除し、databse.ymlファイルを削除しました。
Railsサーバーは正常に起動しますが、モデルを生成しようとすると、次のようになります。
rails g resource contact
次のエラーが発生します。
必要なオプションに値が提供されていません'--orm'
リソースを生成するときにデータベースを指定しない方法はありますか?
簡単な方法はありません。リソース ジェネレーターのソース コードを見ると、orm に関する次の部分が表示されます。
# Loads the ORM::Generators::ActiveModel class. This class is responsible
# to tell scaffold entities how to generate an specific method for the
# ORM. Check Rails::Generators::ActiveModel for more information.
def orm_class
@orm_class ||= begin
# Raise an error if the class_option :orm was not defined.
unless self.class.class_options[:orm]
raise "You need to have :orm as class option to invoke orm_class and orm_instance"
end
begin
"#{options[:orm].to_s.camelize}::Generators::ActiveModel".constantize
rescue NameError
Rails::Generators::ActiveModel
end
end
end
したがって、ORM なしでこのコマンドを実行しようとする試みは明示的に拒否され、ORM を指定すると、ORM::Generators::ActiveModel
. 上部のコメントでは、詳細情報を見つける場所を指定しています ( Rails::Generators::ActiveModel ) 。上部のコメントは、それを拡張して ORM 仕様を作成する方法を説明しています。
Rails にデフォルトで組み込まれているのは ActiveRecord generatorだけです。
多くの一般的なライブラリのジェネレーターを含むrails3-generatorsと呼ばれる gem がありますが、ORMの場合data_mapper
、 、mongo_mapper
、mongoid
、およびactive_model
.
私の知る限り、「データベースなし」用の事前構築済みの ORM ジェネレーターはありません。必要に応じて、の上部にある指示に従ってRails::Generators::ActiveModel
(rails3-generators
必要な場合は gem ソースを参考にして)、自分で作成することもできます。
しかし、それが手間がかかりすぎると思われる場合は、組み込みの ActiveRecord ジェネレーターを使用して生成するように指示し、その ORM に関連して生成されたものを手動で変更/削除することをお勧めします。