【发布时间】:2016-03-25 21:18:03
【问题描述】:
我正在尝试使用 Rails 制作待办事项列表,首先我制作了列表及其规格,一切顺利,但随后我开始制作它的项目,但很简单,不要保存它的内容,它存储一个空字符串,它在表单或规范上都不起作用。当我尝试使用 Rails 控制台保存时,一切正常。
这是我从 Rspec 收到的消息:
Creating todo items is successful with valid content
Failure/Error: expect(page).to have_content("Ruby")
expected to find text "Ruby" in ""
以上是...的代码
#todo_item_controller.rb
class TodoItemsController < ApplicationController
def index
@todo_list = TodoList.find{ params[:todo_list_id] }
end
def new
@todo_list = TodoList.find{ params[:todo_list_id] }
@todo_item = @todo_list.todo_items.new
end
def create
@todo_list = TodoList.find(params[:todo_list_id])
@todo_item = @todo_list.todo_items.new(todo_item_params)
if @todo_list.save
flash[:success] = "Added todo list item."
redirect_to todo_list_todo_items_path
else
flash[:error] = "Something went wrong"
render action: :new
end
end
private
def todo_item_params
params[:todo_item].permit{:content}
end
end
#index.html.erb
<h1><%= @todo_list.title %></h1>
<ul class="todo_items">
<% @todo_list.todo_items.each do |todo_item| %>
<li><%= todo_item.content %></li>
<% end %>
</ul>
<p>
<%= link_to "New Todo item", new_todo_list_todo_item_path %>
</p>
#new.html.erb
<%= form_for [@todo_list, @todo_item] do |form| %>
<%= form.label :content %>
<%= form.text_field :content %>
<%= form.submit "Save" %>
<% end %>
当它出现在浏览器上时,它只显示列表符号而不显示内容。
抱歉太久了
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 rspec capybara