gpt4 book ai didi

ruby-on-rails - 与 FactoryGirl 的关联抛出未定义的方法

转载 作者:行者123 更新时间:2023-12-04 04:36:41 26 4
gpt4 key购买 nike

我有一个属于许多事件的事件。每当我使用 rSpec 测试我的工厂时,我都会收到错误消息。

我的 测试 是:

it "has valid factory" do
expect(FactoryGirl.build(:activity)).to be_valid
end

错误 给出的是:
  1) Activity has valid factory
Failure/Error: expect(FactoryGirl.build(:activity)).to be_valid
NoMethodError:
undefined method `client=' for #<Activity:0x6cbb800>
# C:in `object'
# ./spec/models/activity_spec.rb:5:in `block (2 levels) in <top (required)>

自从我加了 association :client 就一直这样到我的 事件工厂 :
FactoryGirl.define do
factory :activity do
title "Activity"
start_date {Date.parse('2013-05-13 12:00:00')}
end_date {Date.parse('2013-05-13 12:15:00')}
pictogram_id "1"
association :client
end
end

并且客户端本身也通过了所有测试。同一个工厂:( clients.rb )
FactoryGirl.define do
factory :client do
name "Client name"
background "#FFFFFF"
birthdate {15.years.ago}
end
end

由于这不是测试数据库准备/克隆问题,我正在用我的 的相关部分更新帖子。 schema.rb
  create_table "activities", force: true do |t|
t.string "title"
t.datetime "start_date"
t.datetime "end_date"
t.integer "pictogram_id"
t.datetime "created_at"
t.datetime "updated_at"
end

add_index "activities", ["pictogram_id"], name: "index_activities_on_pictogram_id"

create_table "activities_clients", id: false, force: true do |t|
t.integer "activity_id"
t.integer "client_id"
end

add_index "activities_clients", ["activity_id"], name: "index_activities_clients_on_activity_id"
add_index "activities_clients", ["client_id"], name: "index_activities_clients_on_client_id"

create_table "clients", force: true do |t|
t.string "name"
t.string "avatar"
t.date "birthdate"
t.string "background"
t.integer "group_id"
t.datetime "created_at"
t.datetime "updated_at"
end

知道为什么该协会无法 ehm .. 关联吗?

最佳答案

如果您的数据库架构更改尚未在测试数据库上运行,则通常会发生这种情况。确保在最近的迁移后运行“rake db:test:prepare”。

关于ruby-on-rails - 与 FactoryGirl 的关联抛出未定义的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19634634/

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