我正在寻找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”时,它只是说“错误:命令无法识别”。
我想就是这样,我对如何开始感到困惑。
答案 0 :(得分:4)
Rails指南“Engines入门”指示您从引擎的根目录使用“rails g model post”。
如果这样做,它将为您创建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指南还规定从test / dummy运行'rails s',而不是从引擎目录的根目录运行。
我在ASCIICast上看到了关于Rails 3.1 RC5的主题,你曾经可以从你的引擎/ gem的根目录运行'rails s'。情况已不再如此。
从三个月前在Github上发布的Rails问题看来,他们需要将引擎的范围与虚拟应用程序的范围分开。
答案 1 :(得分:1)
从发动机根开始:
test/dummy/script/rails s