2014-07-22 8 views
6

ich bin neu auf Schienen/Rubin und ich habe mich gefragt, wie ich überprüft verdoppeln kann, wenn mein Datenbankschema richtig in Schienen KonsoleRails-Konsole Datenbank-Schema überprüft

In rails c

ActiveRecord::Base.connection.tables gab mir den Ausgang gebaut von

Wie kann ich in der Konsole überprüfen, ob ich das folgende Schema ordnungsgemäß erstellt habe?

enter image description here

Von Benutzer IncomePictures und ExpensePictures sind Fremdschlüssel. IncomePictures zu ExpensePictures sind auch Fremdschlüssel in die entsprechenden Texte

Hier meine Modelle sind:

class ExpensePicture < ActiveRecord::Base 

    belongs_to :user 
    mount_uploader :image, ImageUploader 
    has_one :expense_text 
end 

class ExpenseText < ActiveRecord::Base 
    belongs_to :expense_pictures 
end 

class IncomePicture < ActiveRecord::Base 
    belongs_to :user 
    mount_uploader :image, ImageUploader 
    has_one :income_text 
end 

class IncomeText < ActiveRecord::Base 
    belongs_to :income_pictures 
end 

class User < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :rememberable, :validatable 

    has_many :expense_pictures 
    has_many :income_pictures 

end 

Antwort

7

Sie können diese Datei in db/schema.rb überprüfen. Wenn Sie nicht sicher sind, können Sie zuvor bundle exec rake db:schema:dump ausführen - diese Rake-Aufgabe erstellt die Datei schema.rb aus der Datenbank neu.

Nach Ihrer editierten Frage, sollten Sie die folgenden Migrationen erzeugen:

bundle exec rails g migration add_user_id_to_expense_pictures user:references 
bundle exec rails g migration add_expense_picture_id_to_expense_texts expense_picture:references 
bundle exec rails g migration add_user_id_to_income_pictures user:references 
bundle exec rails g migration add_income_picture_id_to_income_texts income_picture:references 

und führen sie mit bundle exec rake db:migrate.

Auch haben Sie einige Ihrer Assoziationen nicht richtig eingestellt. Es sollte sein:

class ExpenseText < ActiveRecord::Base 
    belongs_to :expense_picture 
end 

und

class IncomeText < ActiveRecord::Base 
    belongs_to :income_picture 
end 
+0

aufgelistet visualisieren konnte ich ziemlich neu bin und ich fühle mich ein wenig mit all verloren die Migration und die Magie, die Rake Migrations durchführen. Das habe ich momentan. Ich fühle mich als ob ich etwas fehlt http://dpaste.com/2TKPYPK – Liondancer

+0

@Liondancer, so dass Ihre aktuelle DB-Schema ist nicht das, was Sie erwarten? –

+0

Umm im jsut nicht sicher, ob die Fremdschlüsselverbindungen hergestellt werden – Liondancer

0

Ich glaube, Sie Rails schema.rb von einigen Werkzeugen in this link