2016-12-14 70 views
0

我在我的rails應用程序中使用嵌套窗體。我有用戶has_many user_skills關聯。現在在我的表單中,我有兩個部分'用戶在技能'和'用戶輸出技能',併爲兩者添加更多選項。我在我的user_skill模型中添加了一個名爲'skill_type'的字段,以區分'in skills'和'out skills',分別保存值in_skill和out_skill。嵌套窗體問題rails 4.0

但我很困惑,我該如何在軌道中處理它。

我已經在我的表單中添加了這個,但這不會幫助我。

.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
user_skills.select {|skill| skill.skill_type == 'in_skill'} 

上面的代碼將只返回in_skill類型的技能,然後你可以遍歷,而不是使用笨重的,如果條件

你也可以把in_skills和out_skills在不同的變量和重複那些在它的模板