因此遵循Hartl示例应用程序教程,并且在关于关系规范的某些测试中遇到一些麻烦。
在我的spec文件中
describe "follow methods" do
before(:each) do
@follower = User.create!( :name => "Example User",
:email => "user@example.com",
:password => "foobar",
:password_confirmation => "foobar"
)
@followed = User.create!( :name => "Example User",
:email => "user_five@example.com",
:password => "foobar",
:password_confirmation => "foobar"
)
@attr = { :followed_id => @followed.id }
@relationship = @follower.relationships.create!(@attr)
end
我知道这与书中的不一样,但我没有使用FactoryGirl。
当使用此块进行测试时,我的@attr读取错误;
Failure/Error: @attr = { :followed_id => @followed.id }
NoMethodError:
undefined method `id' for #<Hash:0x00000108d0b2a0>
但是,当我在我的控制台中运行此块时,它可以正常工作。 id是根据@attr设置的,我可以在@followed上调用.id。
任何帮助都将一如既往地受到赞赏!
答案 0 :(得分:0)
根据您的错误,Hash不存在方法id
。
要访问它,您可以使用:
@attr = { :followed_id => @followed['id'] }
问题是你试图做@followed.id