私は次のrspecを持っています:
require 'spec_helper'
describe KnowledgesController do
before (:each) do
@knowledge = FactoryGirl.create(:knowledge)
@professor = FactoryGirl.create(:professor)
sign_in @professor
end
describe "GET 'show'" do
it "should be successful" do
response.should be_success
end
end
end
これを実行すると、次のエラーが発生します。
Failure/Error: @professor = FactoryGirl.create(:professor)
ActiveRecord::RecordInvalid:
translation missing: es.activerecord.errors.messages.record_invalid
# ./spec/controllers/knowledge_controller_spec.rb:7:in `block (2 levels) in <top (required)>'
これを変更した場合:
before (:each) do
@knowledge = FactoryGirl.create(:knowledge)
@professor = FactoryGirl.create(:professor)
sign_in @professor
end
にとって:
before (:each) do
@professor = FactoryGirl.create(:professor)
@knowledge = FactoryGirl.create(:knowledge)
sign_in @professor
end
このエラーが発生します:
Failure/Error: @knowledge = FactoryGirl.create(:knowledge)
ActiveRecord::RecordInvalid:
translation missing: es.activerecord.errors.messages.record_invalid
ですから、ある場合には知識にかかっており、別の場合には教授にかかっているので、記録が無効であるという問題ではないと思います。
何が起こっているのか考えていますか?
工場は次のとおりです。
#Knowledge
FactoryGirl.define do
factory :knowledge do |knowledge|
knowledge.association(:professor)
knowledge.association(:subject)
knowledge.association(:level)
end
end
#Professor
FactoryGirl.define do
factory :professor do
first_name 'Mister'
last_name 'Professor'
...
end
end