2016-03-25 86 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