嵌套表单问题 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 放在单独的变量中并迭代模板中的变量
我在 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 放在单独的变量中并迭代模板中的变量