【发布时间】:2011-04-10 22:55:15
【问题描述】:
我一直在解决一些问题,让 Rails 与 sqllite 表现得很好,并决定转移到 mysql。
我运行了我的 rake db:create 和 rake db:schema,并假设一切正常,但随后 mysql show tables 显示缺少完整的表。
我使用创建表详细信息创建了一个迁移并运行了 rake db:migrate,现在所有表都显示出来了。
不幸的是,表格之间的链接似乎不起作用。
该应用程序是一个相当简单的食谱应用程序。 这些表是
食谱 配料 脚步成分表不是在 db:create 或 db:schema 中创建的。
我用
创建了成分表 类 AddIngredientsTable在我的食谱模型中,我有 has_many :ingredients,而我的配料模型有 belongs_to :recipe
我得到的错误是
Mysql ::错误:'where子句'中的未知列'ingredients.recipe_id':选择`ingredients`。* FROM`ingredients` WHERE(`ingredients`.recipe_id = 1)当然,错误是正确的,即两个表中都不存在 recipe_id 字段。但是我在控制器中也没有这样的请求,它只是简单地读取
默认显示
@recipe = Recipe.find(params[:id])
respond_to 做 |格式|
format.html # show.html.erb
format.xml { 渲染 :xml => @recipe }
结尾
结尾
关于寻找什么、为什么会出现这个问题以及如何解决它的任何建议?
我不想手动写出 sql,因为我的理解是在这个阶段这不是 rails 方式,虽然我熟悉 sql 所以可以这样做。
【问题讨论】:
标签: mysql ruby-on-rails