2015-04-03 40 views
0

我使用簡單的窗體和我的rails 4應用程序。Rails Association - 在一個視圖中使用單獨的模型和窗體的簡單窗體

我在應用程序中有3個模型。一個叫做Project,一個用於Scope,另一個用於Data(模型稱爲datum,但視圖稱爲數據)。

項目和範圍之間有一個並且屬於許多關聯。數據屬於範圍。

我要求用戶概括地介紹一下項目的範圍(通過詢問範圍表中的高級問題),然後根據範圍表中真/假問題的答案,我提供部分表單作爲表單在數據視圖中創建。

在我的範圍形式我有一個問題:

<%= f.input :data, :as => :boolean, :label => false, :inline_label => true %> 

從數據查看這些諧音的新項目視圖呈現。如果數據問題的答案(在範圍表中提出)是真實的,我寫了這一行以嘗試顯示數據表單。

在我的新項目看法,我有:

<% if @project.scopes.data == true %> 
     <%= render "data/form" %> 
     <% end %> 

在我的模式我有一個連接表的形式projects_scopes。我的數據模型中還有一個用於scope_id的外鍵。

不過,我得到這個錯誤:

`enter code here`undefined method `data' for #<ActiveRecord::Associations::CollectionProxy []> 

有誰知道我做了什麼錯?

謝謝

回答

0

你需要做一個嵌套的形式。基本上,你最終在嵌套對象的簡單表單中再做一個簡單的表單,然後允許你的主對象接受嵌套對象的嵌套屬性。以下是有關實施細節的參考資料。我相信你也可以在YouTube上找到它。

http://railscasts.com/episodes/196-nested-model-form-revised?view=comments

還取決於你的形式多麼複雜得,你可以看做一個表單對象。

+0

謝謝 - 這就是它 – Mel 2015-04-03 06:21:05

相關問題