2011-07-26 118 views
1

我有一個Rails的形式,其中報告的用戶和用戶的技能(該協會是多對多的),所以我使用accepted_nested資源的形式
一切正常okkey,用戶有機會創造一種新技能並將其與自己聯繫起來。
問題是如果一個具有相同名字的技能已經存在,我不希望創建一個具有相同名稱的技能,我只想與用戶和現有技能建立聯繫。
我是否必須離開嵌套資源方法並在控制器中執行一些控制以選擇是創建還是僅關聯技能?
Tnx嵌套的資源檢查

回答

0

您可以使用Rails的find_or_create_by方法根據您選擇的任何標準查找或創建技能。然後將其添加到用戶的技能集合中。我不知道你的代碼是什麼樣的,但是像這樣:

@skill = Skill.find_or_create_by_name(params[:skill][:name]) 
@user.skills << @skill 
+0

將這種事情放入模型方法而不是控制器,BTW會更好。 – dogenpunk