问:获取“表单中的第一个参数不能包含nil或为空”的失败,并且无法弄清楚!请帮忙。
完全失败
添加 待办事项 的项目
是成功的与有效的内容(失败- 1 )失败:1 )添加待办事项的项目是成功的与有效的内容故障/错误:click_link “新的待办事项”的ActionView ::模板::错误:第一个参数在形式不能包含零或为空
#./app/views/todo_items/new.html.erb:1:在`_app_views_todo_items_new_html_erb___1177521040364895439_70338916420420'
#./spec/features/todo_items/create_spec.rb:15:in在<top(必填)(2级)>中'完成于0 。19265秒1个示例,1个失败失败的示例:rspec 。/ spec /功能/ todo_items / create_spec 。rb :13 #成功添加具有有效内容的待办事项,并以种子13419随机分配
Create_spec.rb
要求 'spec_helper'
描述“添加待办事项” ,让我们做吧!(:todo_list ){ TodoList 。创建(标题:“购物清单” ,说明:“杂货” )}高清visit_todo_list (名单)访问“/ todo_lists”内“#todo_list_ #{名单。ID } ”做click_link “列表项”最终结束它“
做
visit_todo_list (todo_list )click_link “新的待办事项” FILL_IN “内容” ,以:“牛奶” click_button “保存”期待(页)。到have_content (“将待办事项列表项。” )内(“ul.todo_item” )希望(页)。到have_content (“牛奶” )端端
new.html.erb
< %= form_for [@todo_list,@todo_item]做| form | %>
<%= form 。label :content %>
<%= form.text_field:content%>
<%= form 。提交“保存” %> <%结束%>
todo_items_controller.rb
类 TodoItemsController < ApplicationController
def index @todo_list = TodoList 。查找(params [ :todo_list_id ] )end def new @todo_list = TodoList 。查找(params [ :todo_list_id ] )@todo_items = @todo_list 。todo_items 。new end def create @todo_list = TodoList 。找到(
params [ :todo_list_id ] )
@todo_item = @todo_list 。todo_items 。如果是@todo_item,则为new (todo_item_params )。保存闪光灯[ :成功] = “将待办事项列表项” redirect_to的todo_list_todo_list_items_path其他闪存[ :错误] = “有补充说,待办事项列表项的错误”渲染动作:新的最终结束私人高清todo_item_params
参数[ :todo_item ]。许可(:content )
结束结束
答:我在代码中唯一看到的可能是不相关的是测试中的无序列表。html中的ul标签在哪里?我不确定这是问题所在,但测试是within("ul.todo_item")。
该错误显然在new.html.erb的第1行中。我看不到那里有什么问题。
这个问题在形式上第一个参数不能包含零或为空似乎是指form_for [@todo_list, @todo_item]-我不知道,如果保存失败?您用“牛奶”填充内容,然后单击“保存”,但是表单的第一部分显示为空白。
保存功能在哪里?我有一段时间没有触摸过,因此需要提醒。