Ruby on rails 设置具有多个has_-one关系的外键

Ruby on rails 设置具有多个has_-one关系的外键,ruby-on-rails,foreign-keys,Ruby On Rails,Foreign Keys,我正在设置一个应用程序,用于发布所需/可用/易货物品。我有两个主要的课程,Post和Item 每篇文章都包含一个提供的项目、一个想要的项目或两者。以下是我目前的定义: class Post < ActiveRecord::Base has_one :wanted_item, :class_name => 'Item', :dependent => :destroy has_one :offered_item, :class_name => 'Item', :dep

我正在设置一个应用程序,用于发布所需/可用/易货物品。我有两个主要的课程,Post和Item

每篇文章都包含一个提供的项目、一个想要的项目或两者。以下是我目前的定义:

class Post < ActiveRecord::Base
  has_one :wanted_item, :class_name => 'Item', :dependent => :destroy
  has_one :offered_item, :class_name => 'Item', :dependent => :destroy
  has_one :location, :dependent => :destroy
end
我得到以下信息:

SQLite3::SQLException:没有这样的列:items.post\u id:SELECT “items.”来自“items”,其中“items”。“post_id”=1限制1


可以对关联设置条件,如下所示:

has_one :wanted_item, :class_name => 'Item', :conditions => ['kind = ?', 'wanted']
并在
项目
中添加
种类
列(不要使用“type”,它是保留字)

编辑:再次阅读您的帖子,您的
项目
表似乎缺少外键。在创建
Item
表的迁移文件中,只需包含
t.references:post
即可让rails创建一个post\u id外键列

Post.find(:first).wanted_item 
has_one :wanted_item, :class_name => 'Item', :conditions => ['kind = ?', 'wanted']