我看了一下堆棧溢出的相關問題,但我不知道該如何解決這個問題。如何在Rails中使用一種形式創建相同模型的非嵌套多個記錄?
爲了闡明,
- 有三種型號:
User
,A
和B
。 A
包含3個記錄,每個記錄的字段爲p1_name
,p1_score
,p2_name
和p2_score
。所以,A
看起來像
-----------------------------------------------------------
id
|
p1_name
|
p1_score
|
p2_name
|
p2_score
id
|
p1_name
|
p1_score
|
p2_name
|
p2_score
id
|
p1_name
|
p1_score
|
p2_name
|
p2_score
-----------------------------------------------------------
B
是其中的User
提交他猜測什麼p1_name
和從A
p2_name
打進模型。所以,B
樣子:B
belongs_to
A
如每個記錄由user
和a_id
放在一起唯一確定。p1_name
從模型A
(如文本)p1_score_guess
用於從模型模型B
(如號字段)p2_name
B
(as text)p2_score_guess
for modelB
(as number field)
---------------------------------------------------------------------------------
id
|
user
|
a_id
|
p1_name
|
p1_score_guess
|
p2_name
|
p2_score_guess
id
|
user
|
a_id
|
p1_name
|
p1_score_guess
|
p2_name
|
p2_score_guess
id
|
user
|
a_id
|
p1_name
|
p1_score_guess
|
p2_name
|
p2_score_guess
---------------------------------------------------------------------------------
我需要爲模型B
形式,由new
行動的控制器處理,使用視圖views/B/new.html.erb
。
這需要一個單一的形式表示3行,每行包含:
使用一個提交按鈕提交後,需要將3條記錄中每條記錄的上述數據提交給控制器,並創建多條記錄B
。
我以前沒有在Rails 4.2.5中遇到過這種要求,也不知道該怎麼去做。自兩天以來,我一直在嘗試這樣做,首先使用simple_form,但似乎並不支持這一點(或者我無法創建一個),然後使用Rails Forms。
它已經成爲棘手的我,因爲我必須展示從視圖模型A
的p1_name
和p2_name
形式下以及也使用它,來填充模型B
。 B
s控制器需要同時採取p1_name
,p2_name
和p1_score_guess
,p2_score_guess
。由於a_id
對於每一行都是不同的,因此需要考慮這一點(進一步使我無法確定這一點)。
可能需要'form_tag',而不是'form_for',因爲後者對與一個單一的定製工作目的。在控制器中,您需要創建不同對象的代碼,並且每個這樣的對象都會從'params'中提取相關信息。 – tillmo
你爲什麼要在'A'和'B'中存儲'p1_name'? –