关于rails插件/引擎

时间:2012-04-11 16:22:48

标签: ruby-on-rails ruby-on-rails-plugins

我正在寻找rails插件来帮助我模块化我的应用程序。我有一些我很困惑的基本问题。

rails插件有自己的DB吗?我的应用程序是非常少的流量,供内部使用,所以我对每个插件的单独sqlite DB的想法很好。当我执行“rails plugin new”时,即使我使用--full,也没有生成database.yml。如果我创建一个并执行rake db:create,则不会创建sqlite db。

是否有一个很好的教程可用于创建rails 3.2的rails插件?我发现大多数都是较旧的并且使用了我认为现在已经内置到rails中的enginex gem。

您可以将插件作为独立应用程序运行以进行测试,即使用WEBrick吗?当我在我的插件目录中运行“rails server”时,它只是说“错误:命令无法识别”。

我想就是这样,我对如何开始感到困惑。

2 个答案:

答案 0 :(得分:4)

创建迁移

Rails指南“Engines入门”指示您从引擎的根目录使用“rails g model post”。

Getting Started with Engines

如果这样做,它将为您创建db / migrate文件夹,并在其中进行迁移。

$ rails g model post
  invoke  active_record
  create    db/migrate/20120517184738_create_my_engine_posts.rb
  create    app/models/my_engine/post.rb
  invoke    test_unit
  create      test/unit/my_engine/post_test.rb
  create      test/fixtures/my_engine/posts.yml

您也可以直接生成迁移,就像使用Rails应用程序一样。

$ rails g migration AddMyEngineTable
  invoke  active_record
  create    db/migrate/20120517185241_add_my_engine_table.rb

运行Rails服务器

Rails指南还规定从test / dummy运行'rails s',而不是从引擎目录的根目录运行。

我在ASCIICast上看到了关于Rails 3.1 RC5的主题,你曾经可以从你的引擎/ gem的根目录运行'rails s'。情况已不再如此。

从三个月前在Github上发布的Rails问题看来,他们需要将引擎的范围与虚拟应用程序的范围分开。

Issue #4894: Mountable Engines Rails File

答案 1 :(得分:1)

从发动机根开始:

test/dummy/script/rails s