2013-01-24 206 views
5

是否可以从现有数据库创建控制器,模型和视图?Ruby On Rails:从现有数据库创建模型视图和控制器

我在Google上找不到命令。

这里我说的是逆向工程

+0

只是好奇,如果你正在使用rails''红宝石那你为什么想从数据库中创建,为什么不从'rails命令line'? –

+0

我想知道从railscommand line执行此操作的命令。你能提供吗? – neeraj

回答

2

你必须创建为每个表的简单模型关系,然后你可以

[rails3] > rails generate scaffold_controller Club name:string exclusive:boolean 
     create app/controllers/clubs_controller.rb 
     invoke erb 
     create app/views/clubs 
     create app/views/clubs/index.html.erb 
     create app/views/clubs/edit.html.erb 
     create app/views/clubs/show.html.erb 
     create app/views/clubs/new.html.erb 
     create app/views/clubs/_form.html.erb 
     create app/views/layouts/clubs.html.erb 
     invoke test_unit 
     create test/functional/clubs_controller_test.rb 

或者你可以尝试active_admin宝石

ActiveAdmin - https://github.com/gregbell/active_admin

rails generate active_admin:resource [MyModelName] 

RailsAdmin也够https://github.com/sferik/rails_admin

你应该为你的模型指定至少2分的规则,如果它不使用好轨道约定。 例

class Article < ActiveRecord::Base 
    self.table_name "tbl_articles" 
    self.primary_key "art_id" 
end 
+0

做active_admin生成控制器,模型和视图的特定表[资源]与默认方法? – neeraj

+0

是的,除了模型,您应该自己定义模型,并且需要关联,逻辑,验证规则等。 – Fivell

+0

您看到数据库表不足以自动创建模型。 – Fivell

0

那么这是违背原则的。你必须做得越好,如果你想为你的应用程序快速引导,你需要复制数据库中的模型并使用脚手架。 请记住,Rails使用了大量的约定,如果你决定不遵循,你会有很多麻烦。

如果您需要帮助,请检查此guide

+0

我的担心只是为了知道这是否可能,否则使用脚手架生成模型,控制器和视图是好的。不要介意:) – neeraj

0

这是你如何能做到这一点 -

尝试:

rails g scaffold myscaffold 

这将生成文件:

invoke active_record 
create db/migrate/20130124100759_create_myscaffolds.rb 
create app/models/myscaffold.rb 
invoke test_unit 
create  test/unit/myscaffold_test.rb 
create  test/fixtures/myscaffolds.yml 
route resources :myscaffolds 
invoke scaffold_controller 
create app/controllers/myscaffolds_controller.rb 
invoke erb 
create  app/views/myscaffolds 
create  app/views/myscaffolds/index.html.erb 
create  app/views/myscaffolds/edit.html.erb 
create  app/views/myscaffolds/show.html.erb 
create  app/views/myscaffolds/new.html.erb 
create  app/views/myscaffolds/_form.html.erb 
invoke test_unit 
create  test/functional/myscaffolds_controller_test.rb 
invoke helper 
create  app/helpers/myscaffolds_helper.rb 
invoke  test_unit 
create  test/unit/helpers/myscaffolds_helper_test.rb 
invoke assets 

invoke coffee 
create  app/assets/javascripts/myscaffolds.js.coffee 
invoke scss 
create  app/assets/stylesheets/myscaffolds.css.scss 
invoke scss 
identical app/assets/stylesheets/scaffolds.css.scss 
+0

我不认为上述命令会读取我的数据库和板条箱控制器,使用脚手架的模型和视图...会吗? – neeraj

+0

为什么不呢?有一个'config/database.yml'文件,你在那里给你的数据库(当前)选项。 –

+0

例如,我在我的数据库中有10个表,我执行上面的命令,那么你确定将为所有10个表创建MVC结构吗? – neeraj

相关问题