2013-01-24 277 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

相關問題