我正在为我的应用模型编写模型测试,accepts_nested_attributes_for(:user)
。这是测试失败的原因:
describe UserApplication, "associations" do
it { should belong_to(:user) }
it { should accept_nested_attributes_for(:user) }
end
以下是模特:
class UserApplication < ActiveRecord::Base
#attr_accessible all the fields
belongs_to :user
accepts_nested_attributes_for :user
end
我使用rspec和shoulda-matchers 2.8,从我的研究中,这一切都应该可以正常工作。没有春天或任何其他古怪。这是我看到的错误:
1) UserApplication association
Failure/Error: it { should accept_nested_attributes_for(:user) }
NoMethodError:
undefined method `accept_nested_attributes_for' for #<RSpec::Core::ExampleGroup::Nested_2:0x007fec5c641a40>
# ./spec/models/user_application_spec.rb:25:in `block (2 levels) in <top (required)>'
我不确定是什么原因引起的。这可能是一些奇怪的宝石冲突恶作剧还是我错过了一些明显的东西?
答案 0 :(得分:0)
好的,所以我必须赞扬@PeterAlfvin为我提供工具来查看错误。我的gemfile指定为gem 'shoulda-matchers'
但是只加载版本1.0,它不支持accepts_nested_attributes_for
。他的建议,通过https://stackoverflow.com/a/2954632/1008891指出了我正确的方向。指定2.8.0修复了问题而没有立即破坏任何东西。