我有一个Rails表单,其中报告了用户和用户的技能(关联是多对多的),所以我在表单中使用accepted_nested资源
一切正常,用户有机会创造一项新技能并与之相关联
问题是如果已经存在同名技能,我不希望创建一个具有相同名称的技能,我只想要与用户和现有技能建立关联。
我是否必须保留嵌套资源方法并在控制器中执行一些控制以选择是创建还是仅关联技能?
TNX
答案 0 :(得分:0)
您可以使用Rails的find_or_create_by方法,根据您选择的任何条件查找或创建技能。然后将其添加到用户的技能集合中。我不知道你的代码是什么样的,但是像这样:
@skill = Skill.find_or_create_by_name(params[:skill][:name])
@user.skills << @skill