/ todo_lists中的NoMethodError未定义的方法`save&#39; for#<activerecord :: associations :: collectionproxy [] =“”> </activerecord :: associations :: collectionproxy>

时间:2015-02-26 05:14:14

标签: ruby ruby-on-rails-4 activerecord

我正在制作一个带有待办事项列表的应用程序,我最近尝试添加了从用户构建待办事项列表的功能。

当我更改以下行时遇到了问题。

def new
  @todo_list = current_user.todo_lists.build
end

def create
    @todo_list = current_user.todo_lists(todo_list_params)
    respond_to do |format|
      if @todo_list.save
        format.html { redirect_to @todo_list, notice: 'Todo list was successfully created.' }
        format.json { render :show, status: :created, location: @todo_list }
      else
        format.html { render :new }
        format.json { render json: @todo_list.errors, status: :unprocessable_entity }
      end
    end
  end

我使用的是以下代码。

def new
  @todo_list = TodoList.new
end

def create
    @todo_list = TodoList.new(todo_list_params)
    respond_to do |format|
      if @todo_list.save
        format.html { redirect_to @todo_list, notice: 'Todo list was successfully created.' }
        format.json { render :show, status: :created, location: @todo_list }
      else
        format.html { render :new }
        format.json { render json: @todo_list.errors, status: :unprocessable_entity }
      end
    end
  end

我通过创建新的迁移并迁移了数据库并为帖子的用户创建了关联,为todo项添加了用户ID。不确定出了什么问题,但任何帮助都会非常感激。 感谢。

1 个答案:

答案 0 :(得分:1)

更改此行:

@todo_list = current_user.todo_lists(todo_list_params)

进入这个:

@todo_list = current_user.todo_lists.build(todo_list_params)