Rails 3生成没有持久层支持

时间:2011-12-27 18:05:24

标签: ruby ruby-on-rails-3

我正在尝试创建一个没有持久层的Rails应用程序(ActiveRecord,MongoMapper等)。我在--skip-active-record上使用了rails new nice_app。这改变了config / application.rb,但是当我尝试用Rails生成新的“模型”时生成 - rails g model nice_class - 它就像一个菜鸟一样失败了:

  

没有为所需选项' - ''提供价值

那么,如果我跳过ActiveRecord,我就不能使用Rails生成器了?

2 个答案:

答案 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模型,您可以编写自己的生成器,完全按照您的需要进行操作。

祝你好运。