我希望item
能够从ItemType
表中获取相关记录:
item = Item.first
item.item_type # <--- ERROR
但是我收到了一个错误:
SELECT“item_types”。* FROM“item_types”WHERE“item_types”。“item_id” =? LIMIT 1 [[nil,11]] SQLite3 :: SQLException:没有这样的列:item_types.item_id:SELECT“item_types”。* FROM“item_types”WHERE “item_types”。“item_id”=? LIMIT 1 ActiveRecord :: StatementInvalid: SQLite3 :: SQLException:没有这样的列:item_types.item_id:SELECT “item_types”。* FROM“item_types”WHERE“item_types”。“item_id”=? 限制1
从错误中我可以看到ActiveModel尝试访问item_id
列。
但我不想在item_id
表中创建ItemType
列...这是一个包含以下项目类型的枚举表:
#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
答案 0 :(得分:2)
您只在模型Item
中定义了关系,但您还必须在模型ItemType
中定义它:
class ItemType < ActiveRecord::Base
has_many :items
end