Ruby on rails 设置具有多个has_-one关系的外键
我正在设置一个应用程序,用于发布所需/可用/易货物品。我有两个主要的课程,Post和Item 每篇文章都包含一个提供的项目、一个想要的项目或两者。以下是我目前的定义: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
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']