我正在尝试创建一个没有持久层的Rails应用程序(ActiveRecord,MongoMapper等)。我在--skip-active-record
上使用了rails new nice_app
。这改变了config / application.rb,但是当我尝试用Rails生成新的“模型”时生成 - rails g model nice_class
- 它就像一个菜鸟一样失败了:
没有为所需选项' - ''提供价值
那么,如果我跳过ActiveRecord,我就不能使用Rails生成器了?
答案 0 :(得分:1)
由Rails生成器生成的模型是ActiveRecord的子类,在具有ORM的应用程序的上下文中才真正有意义。您当然可以创建不是 ActiveRecord子类的模型(因此不与任何ORM相关联),但您必须手动执行此操作。
答案 1 :(得分:1)
请注意运行rails g model nice_class
时调用的任务:
invoke active_record
create db/migrate/20111227183458_create_nice_classes.rb
create app/models/nice_class.rb
invoke rspec
create spec/models/nice_class_spec.rb
您首先注意到的是,它正在使用ActiveRecord生成模型。除此之外,它没有做太多:在迁移文件夹(您不需要)中创建文件,在模型文件夹中创建另一个文件(您确实需要),以及test或spec文件夹中的文件(你应该“需要”。你可以自己制作这些,如果你想要的话,它们非常接近空洞。
有关不基于ActiveRecord的模型的详细信息,请查看Ryan Bates的“无桌面模型”Railscast:http://railscasts.com/episodes/193-tableless-model。
如果您打算制作这类非ActiveRecord模型,您可以编写自己的生成器,完全按照您的需要进行操作。
祝你好运。