我想要一個item
能夠從ItemType
表中獲取相關的記錄:如何使Active Record關聯在不創建foreign_key的情況下工作?
item = Item.first
item.item_type # <--- ERROR
但我得到一個錯誤:
SELECT "item_types".* FROM "item_types" WHERE "item_types"."item_id" = ? LIMIT 1 [[nil, 11]] SQLite3::SQLException: no such column: item_types.item_id: SELECT "item_types".* FROM "item_types" WHERE "item_types"."item_id" = ? LIMIT 1 ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: item_types.item_id: SELECT "item_types".* FROM "item_types" WHERE "item_types"."item_id" = ? LIMIT 1
從錯誤我可以看到加載ActiveModel試圖訪問item_id
列。 但我不希望我的ItemType
表中創建一個item_id
列...這是與類型的項目,如枚舉表:
#id|name
1|"Task"
2|"User Story"
3|"Bug"
4|"Feature Request"
項目模型
#
# Table name: items
#
# id :integer not null, primary key
# name :string
# created_at :datetime not null
# updated_at :datetime not null
# item_type_id :integer
#
class Item < ActiveRecord::Base
has_one :item_type
end
的ItemType型號
# == Schema Information
#
# Table name: item_types
#
# id :integer not null, primary key
# name :string
# created_at :datetime not null
# updated_at :datetime not null
#
class ItemType < ActiveRecord::Base
end
它沒有幫助。我仍然得到這個錯誤:SELECT「item_types」。* FROM「item_types」WHERE「item_types」。「item_id」=? LIMIT 1 [[nil,21]] SQLite3 :: SQLException:no such column:item_types.item_id:SELECT「item_types」。* FROM「item_types」WHERE「item_types」。「item_id」=? LIMIT 1 ActiveRecord :: StatementInvalid:SQLite3 :: SQLException:no such column:item_types.item_id:SELECT「item_types」。* FROM「item_types」WHERE「item_types」。「item_id」=? LIMIT 1 – yaru
如果您將'Item'模型中的關係更改爲:belongs_to:item_type? – zwippie
現在有效。謝謝。 :) – yaru