所有,我定义了以下模型:
class Role < ActiveRecord::Base
attr_accessible :name
has_many :users
validates :name, presence: true
validates :name, uniqueness: true
end
和
class User < ActiveRecord::Base
attr_accessible :abv, :first_name, :full_name, :last_name, :role_id
has_many :defects
belongs_to :role
validates :first_name, :last_name, :full_name, :abv, :role_id, presence: true
validates :full_name, :abv, uniqueness: true
end
我最近更改了视图用户“索引”以将 user.role_id 字段显示为 user.role.name 以使视图更友好!这很好用!但是,当运行 rake 测试 users_controller_test 时,会出现以下错误:
1) 错误:test_should_get_index(UsersControllerTest): ActionView::Template::Error: undefined method `name' for nil:NilClass
在搜索博客后,我发现删除和重新创建测试数据库的参考适用于一个人,并将控制器中的“应该获取索引”测试从
get :index
获取 :index, :user.role_id => 1 #forced to known value
但我所做的一切都没有纠正测试失败。我在这里缺少什么,这可能是如何定义测试夹具中的数据的问题,还是我缺少核心导轨概念?
一如既往,在此先感谢,
理查德