簡體   English   中英

rails 3 測試錯誤:Mysql2::Error: Unknown column

[英]rails 3 test error:Mysql2::Error: Unknown column

伙計們,當我按照http://guides.rubyonrails.org/testing.html測試我的 rails 應用程序時出現錯誤,它說:

test_the_truth(ClassroomTypeTest): ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'type' in 'field list': INSERT INTO classroom_types ( type , memo , created_at , updated_at , id ) VALUES ('MyString', 'MyString', '2011-05-31 08:40:54', '2011-05-31 08:40:54', 980190962)

我很困惑,我的classic_types 表中沒有一列,為什么會出現這樣的錯誤? 誰能幫我? 非常感謝!

這是我的模型和關系:

教室型號 model:

class ClassroomType < ActiveRecord::Base
  has_many :classrooms
end

教室 model:

class Classroom < ActiveRecord::Base
   belongs_to :classroom_type
   belongs_to :teaching_building
end

教學樓model:

class TeachingBuilding < ActiveRecord::Base
  has_many :classrooms
end

以下是相應的表格:

教室:

  • ID
  • 教室_沒有
  • 教室名稱
  • 教室類型ID
  • 教學建築編號

教室類型:

  • ID
  • 姓名
  • 備忘錄

教學樓:

  • ID
  • t_no
  • 姓名

我猜想問題出在您的列命名上。 當 rails 進行多態關聯時,它使用 id 連接表並從 xxx_type 列中選擇連接的表。 如果您在數據庫名稱和列名稱中將“類型”替換為(例如)“種類”,我可以想象您的問題會消失。

我認為問題是列命名,檢查您的數據庫表列名及其類型並根據您說的錯誤消息進行設置

塞繆爾

我遇到過類似的問題,但解決方法如下

  1. go 到 mysql 本地服務器
  2. 然后將 mysql 列名更改為對應於 model 的具有 belongs_to
  3. 使用"ALTER TABLE tablename CHANGE oldname newname VARCHAR (10);"
  4. 這是因為 rails 將默認設置為 user_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM