Lio*_*cer 8 ruby ruby-on-rails database-schema
我是rails/ruby的新手,我想知道如何仔细检查我的数据库架构是否在rails控制台中正确构建
在 rails c
ActiveRecord::Base.connection.tables 给了我输出
["schema_migrations", "users", "expense_pictures", "income_pictures", "income_texts", "expense_texts"]
Run Code Online (Sandbox Code Playgroud)
如何在控制台中检查我是否正确构建了以下架构?

从用户到IncomePictures和ExpensePictures是外键.IncomePictures to ExpensePictures也是其相应文本的外键
这是我的模特:
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
Run Code Online (Sandbox Code Playgroud)
你可以在db/schema.rb文件中检查这个.如果您不确定,可以先运行bundle exec rake db:schema:dump- 此rake任务schema.rb从数据库重新创建文件.
根据您编辑的问题,您应该生成以下迁移:
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
Run Code Online (Sandbox Code Playgroud)
并运行它们bundle exec rake db:migrate.
此外,您的一些关联设置不正确.它应该是:
class ExpenseText < ActiveRecord::Base
belongs_to :expense_picture
end
Run Code Online (Sandbox Code Playgroud)
和
class IncomeText < ActiveRecord::Base
belongs_to :income_picture
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12897 次 |
| 最近记录: |