当我向控制器发送数据时,我收到以下错误
带参数
{"title"=>"some",
"user_id"=>"2",
"task"=>{"title"=>"some"}}
为什么会这样?在Rails中,respond_to和respond_with之间的区别是什么?
class TasksController < ApplicationController
respond_to :json
def create
respond_with current_user.tasks.create(task_params)
end
private
def task_params
params.require(:task).permit(:id, :title, :due_date, :priority, :complete)
end
end
当我使用respond_to时,它会显示Undefined method upcase for Task
答案 0 :(得分:2)
它说它不能识别您的回复格式。由于respond_with current_user.tasks.create(task_params)
会生成html
响应。
在您的routes.rb更改
resources :tasks
到
resources :tasks, :defaults => {:format => "json"}
此question可能会对您有所帮助
答案 1 :(得分:1)
试试这个:
def create
respond_with(current_user.tasks.create(task_params), :location => tasks_url)
end