2016-05-10 128 views
0

我有一個應用程序有subtasks,subattributesweightsFindind模型,屬於兩個模型與has_many通過協會

一個subtask可以有很多通過weightssubattributes,可以有很多weights

一個subattribute可以有很多通過weightssubtasks,可以有很多weights

A weight可以同時屬於subtasksubattribute

現在我試圖通過收集循環打印重量。但是,我在解決如何獲得具體權重時遇到了問題。這是我有什麼:

<% @subtasks.each do |subtask| %> 
    <% @subattributes.each do |subattribute| %> 
     <% if subattribute.subtasks.include (subtask) %> 
      #find the weight of that subattribute that's associated with that subtask 
     <% else %> 
     #create a new weight associated with the subattribute and subtask 
     <% end %> 
    <% end %> 
    <% end %> 

任何建議。這是我的第一個rails應用程序,我沒有設計後端,因爲我個人會認爲在子屬性中只有一個字段會更容易。任何幫助將不勝感激。

+0

試舉你的問題更好的標題。此外,它還會幫助您添加模型的相關行。 – Meier

回答

1

試試這個:

<% @subtasks.each do |subtask| %> 
    <% @subattributes.each do |subattribute| %> 
     <% if subattribute.subtasks.include?(subtask) %> 
     #find the weight of that subattribute that's associated with that subtask 
      <% Weight.where(subattribute_id: subattribute.id,subtask_id: subtask.id).first %> 
     <% else %> 
      #create a new weight associated with the subattribute and subtask 
      <% Weight.create(subattribute_id: subattribute.id,subtask_id: subtask.id) %> 
     <% end %> 
    <% end %> 
<% end %> 
+0

所以問題,我將如何獲得一個領域使用的地方?我試過<%Weight.where(subattribute_id:subattribute.id,subtask_id:subtask.is).first.capability%>,但得到了未定義的方法錯誤。 –

+0

@MeganWoodruff我有一個錯字。它應該是'subtask.id'而不是'subtask.is'。更新了上面的答案 – dp7

+0

啊!明白了!非常感謝!我不知道這個地方甚至存在!接受並投票! –