gpt4 book ai didi

ruby-on-rails - FactoryGirl:ActiveRecord::AssociationTypeMismatch:用户预期,得到 #

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

我有一个带有 has_many User 关联的简单 :photos 模型。当我尝试 FactoryGirl.create(:user) 时,出现以下错误。任何想法?

# user.rb
has_many :photos, dependent: :destroy

# photo.rb
belongs_to :user


FactoryGirl.define do
factory :user do
email 'john@site.com'
after_build do |user|
user.photos << FactoryGirl.build(:photo, user: user)
end
end

factory :photo do
photo File.new(File.join(::Rails.root.to_s, "/factories/images", "avatar1.jpg"), 'rb')
end

错误输出。
ruby-1.9.2-p290 :015 > b = FactoryGirl.create(:user)
ActiveRecord::AssociationTypeMismatch: User(#70183166983920) expected, got # <Class:0x007fa995612538>(#70183166186140)
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/activerecord-3.2.8/lib/active_record/associations/association.rb:204:in `raise_on_type_mismatch'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/activerecord-3.2.8/lib/active_record/associations/belongs_to_association.rb:6:in `replace'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/activerecord-3.2.8/lib/active_record/associations/singular_association.rb:17:in `writer'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/activerecord-3.2.8/lib/active_record/associations/builder/association.rb:51:in `block in define_writers'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/attribute_assigner.rb:16:in `block (2 levels) in object'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/attribute_assigner.rb:15:in `each'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/attribute_assigner.rb:15:in `block in object'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/attribute_assigner.rb:14:in `tap'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/attribute_assigner.rb:14:in `object'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/evaluation.rb:12:in `object'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/strategy/build.rb:9:in `result'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/factory.rb:42:in `run'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/factory_runner.rb:23:in `block in run'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/activesupport-3.2.8/lib/active_support/notifications.rb:125:in `instrument'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/factory_runner.rb:22:in `run'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/strategy_syntax_method_registrar.rb:19:in `block in define_singular_strategy_method'
... 8 levels...
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/attribute_assigner.rb:15:in `block in object'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/attribute_assigner.rb:14:in `tap'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/attribute_assigner.rb:14:in `object'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/evaluation.rb:12:in `object'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/strategy/create.rb:9:in `result'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/factory.rb:42:in `run'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/factory_runner.rb:23:in `block in run'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/activesupport-3.2.8/lib/active_support/notifications.rb:125:in `instrument'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/factory_runner.rb:22:in `run'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/factory_girl-4.1.0/lib/factory_girl/strategy_syntax_method_registrar.rb:19:in `block in define_singular_strategy_method'
from (irb):15
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/railties-3.2.8/lib/rails/commands/console.rb:47:in `start'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/railties-3.2.8/lib/rails/commands/console.rb:8:in `start'
from /Users/user/.rvm/gems/ruby-1.9.2-p290@site/gems/railties-3.2.8/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'ruby-1.9.2-p290 :016 > #<Class:0x007fa995612538>

最佳答案

解决了。我应该使用更新的 after(:create) 而不是旧的 after_build

关于ruby-on-rails - FactoryGirl:ActiveRecord::AssociationTypeMismatch:用户预期,得到 #<Class:0x007>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13609586/

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