嵌套表单发布rails 4.0

时间:2016-12-14 08:04:56

标签: ruby-on-rails nested-forms

我在rails应用中使用嵌套表单。我有用户has_many user_skills关联。现在,在我的表格中,我有两个部分'用户技能'并且'用户输出技能'并为两者添加更多选项。我添加了一个名为' skill_type'在我的user_skill模型中区分技能'和技能'这是节省价值' 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}

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

1 个答案:

答案 0 :(得分:0)

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

上面的代码段只返回in_skill类型的技能,随后你可以迭代它而不是使用庞大的if条件

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