2013-01-24 28 views
5

Czy można tworzyć kontrolery, modele i widoki z istniejącej bazy danych?Ruby on Rails: tworzenie widoku modeli i kontrolera z istniejącej bazy danych

Nie mogłem znaleźć polecenia dotyczącego googlowania.

Tutaj mówię o inżynierii odwrotnej

+0

prostu ciekawi, czy używasz 'Ruby on rails' to dlaczego chcesz utworzyć z bazy danych i dlaczego nie z' Szyny dowodzić line'? –

+0

Chciałbym znać polecenie, aby to zrobić z linii poleceń rails. Czy możesz to zapewnić? – neeraj

Odpowiedz

2

Musisz stworzyć prosty model dla każdej tabeli z relacje, a następnie można

[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 

Alternatywnie można spróbować active_admin gem

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

rails generate active_admin:resource [MyModelName] 

RailsAdmin jest również wystarczająco https://github.com/sferik/rails_admin

należy podać co najmniej 2 zasady modelu jeśli nie używa dobry konwencje szyn. Przykład

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

czy active_admin generuje kontroler, modele i widok tej konkretnej tabeli [resource] przy użyciu domyślnych metod? – neeraj

+0

Tak, z wyjątkiem modeli, należy samodzielnie zdefiniować modele z odpowiednimi powiązaniami, logiką, regułami sprawdzania poprawności itp. – Fivell

+0

Widoczna tabela bazy danych nie wystarcza do automatycznego utworzenia modelu. – Fivell

0

To jest sprzeczne z zasadami. Im lepiej zrobisz, jeśli chcesz szybko uruchomić program, powiel modele posiadane w bazie danych i użyj rusztowania. Pamiętaj, że Rails używa wielu konwencji, a jeśli zdecydujesz się nie podążać, będziesz miał wiele problemów.

Sprawdź tę guide, jeśli potrzebujesz pomocy.

+0

Moje obawy dotyczyły tylko tego, czy jest to możliwe, w przeciwnym razie generowanie modeli, kontrolerów i widoków za pomocą rusztowania jest w porządku. Nieważne :) – neeraj

0

ten sposób można to zrobić -

Spróbuj:

rails g scaffold myscaffold 

To będzie generować pliki:

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

Nie sądzę, że powyższe polecenie odczyta moją bazę danych i sterowniki skrzynek, modele i widoki tego samego za pomocą rusztowania ... czy byłoby to? – neeraj

+0

dlaczego nie? Istnieje plik 'config/database.yml' i podajesz tam opcje bazy danych (bieżące). –

+0

Na przykład mam 10 tabel w mojej bazie danych i wykonuję powyższe polecenie, to czy jesteś pewien, że struktura MVC zostanie utworzona dla wszystkich 10 tabel? – neeraj