我遇到問題正確設置我的工廠has_many/has_many通過或has_and_belongs_to_many與驗證關聯。客戶模型/工廠已被省略,但它確實存在。通過與驗證相關聯來設置has_many到has_many的最佳方式是什麼?在哪裏需要傳遞屬性?工廠女孩has_many/has_many通過驗證
我已經嘗試了幾種使它無法成功工作的方法。目前的相關代碼如下(略有改動)。嘗試了其他方法:在client_team之後(:create)和之前(:create)創建user_clients,定義關聯的client_teams和user_clients上的traits,使用build_list/create_list代替鏟運算符。
ClientTeam型號:
belongs_to :client
has_many :client_team_rosters
has_many :users, through: :client_team_rosters
用戶模式:
belongs_to :client
has_many :client_team_rosters
has_many :client_teams, through: :client_team_rosters
validates_presence_of :client_teams
ClientTeamRoster型號:
belongs_to :user
belongs_to :client_team
相關工廠:
factory :client_team do
client
team_name "stuff"
end
factory :client_team_roster do
client
user
end
factory :user do
...
factory :user_client do
client
before(:create) do |user_client|
client_team = user_client.client.client_teams.first
user_client.client_team_rosters << FactoryGirl.build(:client_team_roster, user: user_client, client_team: client_team)
end
end
end
規格文件:
before(:each) do
@client = create(:client)
@client_team = create(:client_team, client: @client)
end
it "should do something" do
user_client = create(:user_client, client: @client)
end
當前出錯:
Validation failed: Client_teams can't be blank