Rails中的respond_to和respond_with之间的区别是什么?

时间:2015-08-25 14:14:01

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

当我向控制器发送数据时,我收到以下错误

enter image description here

带参数

{"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

2 个答案:

答案 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