gpt4 book ai didi

ruby-on-rails - 测试与 rspec : Category does not have a post_id foreign key 的关联

转载 作者:行者123 更新时间:2023-12-02 22:22:42 25 4
gpt4 key购买 nike

我正在尝试测试一些与 RSpec 的关联,但我遇到了这些失败:

Category 
Failure/Error: it {should belong_to :post}
Expected Category to have a belongs_to association called post (Category does not have a post_id foreign key.)
# ./spec/models/category_spec.rb:7:in `block (2 levels) in <top (required)>'

Post
Failure/Error: it {should have_one (:category)}
Expected Post to have a has_one association called category (Category does not have a post_id foreign key.)
# ./spec/models/post_spec.rb:8:in `block (2 levels) in <top (required)>'

这是我的模型:

class Post < ActiveRecord::Base
has_one :category
validates_presence_of :author, :category, :post
end

class Category < ActiveRecord::Base
belongs_to :post
validates_presence_of :name
end

和我的测试:

require 'spec_helper'

describe Post do
it {should validate_presence_of(:author)}
it {should validate_presence_of(:post)}
it {should validate_presence_of(:cathegory)}
it {should have_one (:category)}
end

describe Category do
it {should validate_presence_of :name}
it {should belong_to :post}
end

和我的计划

 ActiveRecord::Schema.define(:version => 20121118131441) do

create_table "categories", :force => true do |t|
t.string "name"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "post_id"
end

create_table "posts", :force => true do |t|
t.string "author"
t.string "cathegory"
t.text "post"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "category_id"
end

end

有人知道发生了什么事吗?

最佳答案

没有看到您的架构,看起来您的数据库表缺少外键列。创建一个添加以下内容的迁移应该可以修复它:

add_column :categories, :post_id
add_column :posts, :category_id

更新

正如我在下面的评论中所说,还要确保您运行 rake db:test:prepare 以确保您的测试数据库具有最新的架构。

关于ruby-on-rails - 测试与 rspec : Category does not have a post_id foreign key 的关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13440122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com