この質問はおそらく何度も聞かれたことでしょう。これが私たちのバージョンです。Rails 3.1 アプリには user と user_level モデルがあります。ユーザーには多くのユーザーレベルがあります。
class User < ActiveRecord::Base
has_many :user_levels
accepts_nested_attributes_for :user_levels, :allow_destroy => true
validates_presence_of :user_levels
end
class UserLevel < ActiveRecord::Base
belongs_to :user
validates :position, :presence => true
end
FactoryGirl 3.3 には次のようなものがあります。
FactoryGirl.define do
factory :user_level do
position "admin"
user
end
factory :user do
name "Test User"
login 'testuser'
password "password1"
factory :user_with_levels do
#user_levels
after(:create) do |user|
FactoryGirl(:user_level, :user => user)
end
end
end
end
u = FactoryGirl.build(:user_with_levels) or u = FactoryGirl.create(:user_with_levels)
rspec で使用されます。作成後のコールバックが機能せず、エラーが発生しましたValidation failed: User levels can't be blank
。上記のコールバックの何が問題になっていますか? 本当にありがとう。