很常见的需求,一个 model(A),还有几个关联的 model(B、C、D),同时在一个表单里填写。 这时候,model A 是固定的一个,model B、C、D 则希望想加就加,想删就删,同时也可以更新。
看了几个 Railscast 视频
《416 form objects》对我来说太复杂了,一不小心弄出 exception 说:“stack level too deep”
《403 dynamic forms》感觉是最新最贴切的,但核心的那段(见附注)我试抄了下又出错……好吧,实在不行,就反反复复看这个……
《196 nested model form revised》 核心还是上一段代码,好吧,我就是搞不懂,尤其 render 里变量的传递,总出错……
《73 complex forms part-1》, 《74 complex forms part 2》, 《75 complex forms part-3》这三个实在太老了,那些 link_to_function 貌似都找不到了……
好像没有什么解决方案,就是大概 《403 dynamic forms》中的思路。 我没有用 nested_form 和 cocoon两个 gem。我用过程中,有些需要定制的地方,总感觉不太顺手。最后还是手写了。
只是我之前各种自己把自己绕进去了,把简单的事情想复杂了。 之前有几个误区: