2016-03-25 132 views
1

我想用Rails做一个待办事项列表,首先我创建了列表和它的规范,一切都很顺利,但是后来我开始制作它的项目,但它简单的不保存它的内容,它存储一个空字符串,它在表单或规范中都不起作用。当我尝试使用Rails控制台保存时,一切顺利。用Ruby on Rails保存问题

这是我从Rspec的收到消息:

​​

以上是代码...

#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 %> 

当它出现在浏览器只显示列表中的符号,但没有内容。

对不起太久

回答

2

更改您的todo_item_parems

def todo_item_params 
    params.require(:todo_item).permit(:content) 
end 

看看Rails的strong parameters

+0

它的工作!非常感谢! – joaomarcuslf