嵌套表单问题 rails 4.0

nested form issues rails 4.0

我在 rails 应用程序中使用嵌套表单。我有用户 has_many user_skills 关联。现在在我的表单中有两个部分 'user in skills' 和 'user out skills' 并为两者添加更多选项。我在我的 user_skill 模型中添加了一个名为 'skill_type' 的字段以区分 'in skills' 和 'out skills',它们分别保存值 'in_skill' 和 'out_skill'。

但我很困惑如何在 rails 中处理它。

我已将此添加到我的表单中,但这对我没有帮助。

.col-xs-12.no_pad.skils-fieldset            
   %legend In Skills
     = f.fields_for :user_skills do |user_skill|
       = render :partial => "users/user_skills", :locals => {:f => user_skil l}
     = link_to_add_fields "Add", f, :user_skills, true, "users/user_skills"


.col-xs-12.no_pad.skils-fieldset            
   %legend Out Skills
     = f.fields_for :user_skills do |user_skill|
       = render :partial => "users/user_skills", :locals => {:f => user_skil l}
     = link_to_add_fields "Add", f, :user_skills, true, "users/user_skills"

显然,它会在两个部分中填充该用户的所有技能。

我该如何处理?

我尝试添加这样的条件:

-if user_skill.skill_type == 'in_skill'
  = render :partial => "users/user_skills", :locals => {:f => user_skil l}

这样做的更好方法是什么?

user_skills.select {|skill| skill.skill_type == 'in_skill'}

以上代码段将 return 仅 in_skill 类型的技能,随后您可以对其进行迭代,而不是使用庞大的 if 条件

您还可以将 in_skills 和 out_skills 放在单独的变量中并迭代模板中的变量