我在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}
这样做的更好方法是什么?
答案 0 :(得分:0)
user_skills.select {|skill| skill.skill_type == 'in_skill'}
上面的代码段只返回in_skill
类型的技能,随后你可以迭代它而不是使用庞大的if条件
您还可以将in_skills和out_skills放在单独的变量中并迭代模板中的那些