`
zysoo
  • 浏览: 28049 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

rails中用migrate建表的时候,建立外键出错。ft

阅读更多
昨天晚上rp严重走低,被mysql的一个问题搞到很晚,还使我把数据库重新建了一下。
问题是,我想把bookcomment_book表关联起来,就是建外键,但是建不起来。报150错误。
早上起来继续搞,查看了manul,突然发现这样的一句话。
Corresponding columns in the foreign key and the referenced key must have simila internal datatypes inside InnoDB so that they can be compared without a type conversion. The size and the signedness of integer types has to be the same……
….similarly, if an ALTER TABLE fails and it refer to errno 150, that means a foeign key definition would be incorrectly formed for the altered table….
 

大意就是,相互关联的域的类型的类型需要相同,如果是integer,大小要相同,如是string ,长度要相同。。

而我,就是因为book_comment 中的book_idbook中的id不一样,--#

 

估计也我这样的初学者能犯这样的错误吧。

还有,rails中,好像对于外键不是强求的,他会按照name来比配。

比如,你只要在book_comments中有book_id,rails就会自己比配。

Model/book.rb

ruby 代码
  1. Has_many    :book_comments  
  2.   
  3. Model/book_comment.rb   
  4. Belongs_to  :book  
 

就可以通过book.bookComment.post来取书的评论的内容了。

It’s so easy….isnt it?

如果你对上面命名有点混乱,请参考相应的问题,理解一下,配置优于规范原则。

分享到:
评论

相关推荐

    yeet_dba:自动将外键约束添加到rails db

    yeet_dba在rails表中扫描缺少的外键约束。 如果没有悬挂的记录,它将创建一个迁移以在所有安全的表上添加外键约束。 如果您有悬而未决的迁移,请检查生成器日志以查看无效的孤立行所在的位置。 孤立行,表示关联表...

    mongoid_rails_migrations:Mongoid的数据迁移

    $ rails db:migrate:down VERSION= $ rails db:migrate:up VERSION= $ rails db:rollback $ rails db:rollback_to VERSION= $ rails db:migrate:redo $ rails db:migrate:reset $ rails db:migrate:status $ rails ...

    Ruby-Foreigner一个外键助手用于在迁移时添加和删除外键约束

    Ruby-Foreigner是一个非常有用的库,专为在Ruby on Rails应用程序中处理数据库迁移时的外键约束而设计。它使得在Rails环境中管理外键变得简单高效,从而增强了数据完整性和引用完整性。外键是数据库设计中的关键元素...

    Rails 101 入门电子书

    ### Rails 101 入门电子书知识点详解 #### 一、简介 《Rails 101 入门电子书》是一本非常适合初学者直接入门的书籍,它由xdite编写并出版于2014年6月10日。本书主要针对的是希望学习Ruby on Rails框架的读者,特别...

    Rails101_by_rails4.0

    《Rails101_by_rails4.0》是一本专注于Rails 4.0.0版本和Ruby 2.0.0版本的自学教程书籍,它定位于中文读者,旨在成为学习Rails框架的参考教材。Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它...

    Ruby on Rails入门例子

    通过`rails generate migration AddTitleToPosts title:string`创建迁移,然后运行`rails db:migrate`执行迁移。 - **ActiveRecord查询接口(Query Interface)**:ActiveRecord提供了丰富的查询API,如`User.find...

    rails向导打包

    4. **Rails 数据库迁移(Migrations)**: Migrations 是 Rails 中用于数据库结构版本控制的工具。它们允许开发者以编程方式添加、修改或删除表列,而不必直接操作 SQL。文件将涵盖创建、运行和回滚迁移,以及使用 `...

    Rails项目源代码

    Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...

    Rails3常用命令行命令

    Rails3 是 Ruby on Rails 框架的一个版本,它提供了一系列强大的命令行工具,使得开发者可以快速地构建和管理Web应用。在本文中,我们将深入探讨Rails3中的常用命令,帮助你更高效地进行开发工作。 首先,新建一个...

    Ruby+for+Rails

    `rails generate migration AddColumnToBooks column:type`会生成一个新的迁移文件,然后通过`rails db:migrate`执行迁移,更新数据库。 7. **路由(Routing)** Rails的路由系统将URL映射到控制器的动作上,定义...

    rails 项目起步示例

    Rails是Ruby语言的一个著名Web开发框架,全称为Ruby on Rails,它遵循MVC(Model-View-Controller)架构模式,旨在提高开发效率和代码可读性。本示例"rails项目起步示例"是一个购物系统,非常适合初学者入门学习。 ...

    Ruby on Rails Tutorial Learn Rails by Example 的源代码

    8. **生成器和迁移**:Rails提供了一些命令行工具,如`rails generate`和`rails db:migrate`,用于快速生成模型、控制器、迁移等,并执行数据库迁移。 9. **测试**:Rails鼓励TDD(测试驱动开发),`spec`目录包含...

    rails2-sample

    掌握Ruby语言是学习Ruby on Rails的前提条件,因为Rails正是建立在Ruby之上的。 #### 4. Rails Revealed(揭示Rails) 这部分内容会更进一步地探索Rails的内部机制,包括其架构、工作流程以及一些高级特性。例如,...

    关于rails 3.1 cucumber-rails 1.2.0

    Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...

    Ruby on Rails入门经典代码

    Ruby on Rails,简称Rails,是基于Ruby语言的一个开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本压缩包中的"Ruby on Rails入门经典代码"提供了新手学习...

    Ruby on Rails实例开发

    Ruby on Rails,简称Rails,是基于Ruby编程语言的一个开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和可读性,同时强调“约定优于配置”的原则。在本实例开发中,我们将探讨如何...

    rails-4.2.0-gems

    6. `rails_setup`可能还包括数据库迁移,运行`rails db:create`来创建数据库,`rails db:migrate`将数据库结构更新到最新状态。 7. 如果有其他特定的配置,如邮件服务、云存储或第三方API集成,`rails_setup`可能...

    rails指南 中文版

    Rails指南中文版是针对Ruby on Rails框架的一份详尽教程,旨在帮助开发者深入理解并熟练掌握这个强大的Web应用开发工具。Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-...

    ruby_on_rails 源代码上

    Ruby on Rails,简称Rails,是基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和可读性,同时强调“约定优于配置”的原则。Rails的核心理念是“开发应该是一种...

    rails3.1安装与mysql配置 windows

    最后,初始化数据库,运行`rake db:create`创建数据库,然后`rake db:migrate`执行数据库迁移,这将根据你的Rails应用的模型文件创建相应的表结构。 总结来说,"rails3.1安装与mysql配置 windows"涵盖了以下知识点...

Global site tag (gtag.js) - Google Analytics