すべて、次のモデルが定義されています。
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 #強制的に既知の値を取得する
しかし、私が行ったことは何もテストの失敗を修正していません。ここで何が欠けていますか、これはテストフィクスチャのデータがどのように定義されているかの問題でしょうか、それともコアレールの概念が欠けていますか?
いつものように、前もってありがとう、
リチャード