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

最近、ビュー users 'index' を変更して user.role_id フィールドを user.role.name に表示し、ビューをより使いやすくしました! これはうまくいきました!ただし、レーキ テストを実行すると、users_controller_test で次のエラーが発生します。

1) エラー: test_should_get_index(UsersControllerTest): ActionView::Template::Error: nil:NilClass の未定義のメソッド「name」

ブログを検索した後、テストデータベースの消去と再作成に関する参照が1人の個人で機能し、コントローラーの「インデックスを取得する必要がある」テストをから変更することへの参照を見つけました

get :index

:index, :user.role_id => 1 #強制的に既知の値を取得する

しかし、私が行ったことは何もテストの失敗を修正していません。ここで何が欠けていますか、これはテストフィクスチャのデータがどのように定義されているかの問題でしょうか、それともコアレールの概念が欠けていますか?

いつものように、前もってありがとう、

リチャード

4

1 に答える 1

0

関連付けを使用している場合は、2 つの異なるフィクスチャ間に参照ノードを定義することでこれを修正できます。

于 2015-02-25T05:40:15.420 に答える