2017-08-17 89 views
0

实际的嵌套窗体本身工作正常,但我希望能够覆盖它的测试,以确保我以后不会搞砸。我还计划了更多的嵌套表单,所以我很想弄清楚这一点。试图测试我嵌套的Rails 5窗体(最小测试)

我得到这个失败的测试中我ListControllerTest:

"ListItem.count" didn't change by 1. 
Expected: 1 
Actual: 0 

有了这个代码:

https://pastebin.com/BRdtZW2T

注意 “List.count” 位并通过。再一次,这确实按照它应该的那样工作。当我实际上在我的应用上提交表单时,我可以创建列表项目没有问题。

列表与的form_for listItems中与fields_for

回答

0

想通了创建创建。首先,我从我的测试中发布的参数中删除了'list_item_attributes'。这似乎是多余的,我不知道为什么我在那里加入它,直到我删除它,我的测试提出了不同的错误:

TypeError: no implicit conversion of Symbol into Integer 
    app/controllers/lists_controller.rb:15:in `[]' 

不知道这是什么,但一些谷歌搜索变成了这个:

http://billpatrianakos.me/blog/2013/09/29/rails-tricky-error-no-implicit-conversion-from-symbol-to-integer/

事实证明了这恰好是我的问题。所以我在params中添加了一些额外的square []括号:[:list] [:list_item],并且它运行正常。请参阅修订后的pastebin以及文章,因为这可能不明确:

https://pastebin.com/uxRjsctK