gpt4 book ai didi

ruby-on-rails - 通过与 Ruby-on-Rails 4.1 的关系在 RSpec 3.1.0 和 has_many 上遇到麻烦

转载 作者:太空宇宙 更新时间:2023-11-03 16:49:00 24 4
gpt4 key购买 nike

我正在尝试使用 RSpec 来测试模型之间的关系。我有两个模型:

class User < ActiveRecord::Base
has_many :user_roles
has_many :roles, through: :user_roles
end

class Role < ActiveRecord::Base
has_many :user_roles
has_many :users, through: :user_roles
end

通过类:

class UserRole < ActiveRecord::Base
belongs_to :user
belongs_to :role
end

我的 RSpec 代码是:

describe User do
it { is_expected.to have_many(:user_roles) }
it { is_expected.to have_many(:roles).through(:user_roles) }
end

这两个都抛出错误:

1) 用户应该有很多 :user_roles 失败/错误:它 { is_expected.to have_many(:user_roles) } 预计#回应has_many? # ./spec/models/user_spec.rb:49:in `block (2 levels) in '

2) 用户 失败/错误:它 { is_expected.to have_many(:roles).through(:user_roles) } 没有方法错误: 未定义的方法 through' for #<RSpec::Matchers::BuiltIn::Has:0x007fe1cd003ac8>
# ./spec/models/user_spec.rb:50:in
'

中的 block (2 级)

无论我尝试什么,我似乎都无法让这些工作。有人知道我做错了什么吗?

感谢您的帮助!

最佳答案

我最终使用了 Shoulda。您也可以通过编写自己的匹配器来解决这个问题。

关于ruby-on-rails - 通过与 Ruby-on-Rails 4.1 的关系在 RSpec 3.1.0 和 has_many 上遇到麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27285425/

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