2016-06-26 87 views
0

我正面對一些令人困惑的問題。這裏是我的用戶故事:Rails的關係和形式

「約翰需要爲維護團隊與列車名稱和號碼的(問題)的任務,是有問題的部分,優先級和誰是負責該任務。」

每個問題可以有一個或更多的解決方案,每一部分可能有一個問題。 火車可能有很多問題(任務),但不具有相同的問題。

因此,基於我創建的那些

class Issue < ActiveRecord::Base 
    belongs_to :project 
    has_many :train_issues, :dependent => :destroy 
    accepts_nested_attributes_for :train_issues, :reject_if => lambda { |a| a[:content].blank? } 
end 

class TrainIssue < ActiveRecord::Base 
    belongs_to :issue 
    has_many :train_displays 
    has_many :train_display_problems 
    accepts_nested_attributes_for :train_display_problems, :reject_if => lambda { |a| a[:content].blank? } 
end 

class TrainDisplay < ActiveRecord::Base 
    belongs_to :train_car 
    belongs_to :train_issue 
end 

class TrainProblemAndSolution < ActiveRecord::Base 
    belongs_to :TrainDisplayProblem 
    belongs_to :TrainDisplaySolution 
end 

我也有Train.rb和TrainCar.rb,他們都相關的,這是工作的罰款。我可以通過顯示找到train_id,反之亦然。

我的問題是,我怎麼可以創建一個表單這個用戶創建與所有這些信息一個問題? 我閱讀並使用nestedForms做了一些示例,但效果不佳,表單創建了一個Issue,但沒有用參數創建TrainIssue。

感謝了很多!

+0

您必須使用'fields_for:association'使用嵌套表單。最簡單的方法之一就是使用'cocoon gem'! https://github.com/nathanvda/cocoon – dpedoneze

回答

0

可以使用Formtastic嵌套屬性。它允許簡單地爲它們添加一個子表單:

<%= semantic_form_for @issue do |f| %> 
    <%= f.inputs :title, :description %> 
    <%= f.inputs :for => :trains_issues do |train_issue, index| %> 
    <%= train_issue.input :name %> 
    ... 
    <%= end %> 
    <%= f.actions %> 
<% end %>