1

所有,我定义了以下模型:

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

但我所做的一切都没有纠正测试失败。我在这里缺少什么,这可能是如何定义测试夹具中的数据的问题,还是我缺少核心导轨概念?

一如既往,在此先感谢,

理查德

4

1 回答 1

0

如果您正在使用关联,您可以通过在两个不同的设备之间定义一个参考节点来解决这个问题。

于 2015-02-25T05:40:15.420 回答