我收到一个特别令人沮丧的错误。
我正在尝试创建一个具有与之关联的用户ID的“任务”。但是当我在本地主机中创建一个新任务时,我在TasksController中收到以下错误消息NoMethodError #new #
的未定义方法`tasks'Git repo:https://github.com/BrianLobdell/emailtest
错误:
这是我的任务控制器 class TasksController< ApplicationController的 before_action:set_task,only:[:show,:edit,:update,:destroy]
# GET /tasks
# GET /tasks.json
def index
@tasks = Task.all
end
# GET /tasks/1
# GET /tasks/1.json
def show
end
# GET /tasks/new
def new
@task = current_user.tasks.build
end
# GET /tasks/1/edit
def edit
end
# POST /tasks
# POST /tasks.json
def create
@task = current_user.tasks.build(task_params)
respond_to do |format|
if @task.save
format.html { redirect_to @task, notice: 'Task was successfully created.' }
format.json { render action: 'show', status: :created, location: @task }
else
format.html { render action: 'new' }
format.json { render json: @task.errors, status: :unprocessable_entity }
end
end
end
答案 0 :(得分:0)
即使您的任务模型中有belongs_to
关联,您也需要在用户模型中使用匹配的has_many
才能使current_user.tasks
方法生效。
您需要做的就是
class User < ActiveRecord::Base
# ...
# ...
has_many :tasks
end