将json发布到控制器时,NoMethodError'title_url'?

时间:2014-02-13 20:12:22

标签: ruby-on-rails

真实代码:

class TitlesController < ApplicationController
  respond_to :json
  def create
    title = Title.create!(params[:title])
    respond_with title
  end
end

规格:

describe TitlesController do
  it 'receives a json response' do
    post :create, title: { name: 'fancy title'}, format: 'json'
    expect(controller).to respond_with(201)
  end
end

==&GT;      NoMethodError:        #

的未定义方法`title_url'

为什么世界上这个试图叫做title_url ??????

1 个答案:

答案 0 :(得分:1)

当您使用资源{@ 1}}进行回复时,对于帖子请求,它会重定向到show动作。来自respond_with documentation

  

如果没有错误,即资源已成功保存,则响应重定向到资源,即显示操作。

要获取展示操作的网址,系统会调用title

您可以通过指定title_url(title)来覆盖此重定向行为(在文档的“自定义响应行为”部分中介绍):

:location