【发布时间】:2014-04-30 03:35:05
【问题描述】:
我正在尝试按照 codeschool 课程“Surviving APIs with Rails”作为指南创建一个 API。 这是我的控制器索引:
def index
respond_to do |format|
format.json { render json: Project.all, status: 200 }
format.all { head 406 }
end
end
当我尝试像这样使用 rspec 测试控制器时(如课程中所示):
get :index, {}, { 'Accept' => Mime::JSON }
expect(response.status).to eq(200)
请求未设置为 JSON,而是设置为 html。 (并且测试失败:预期 200 得到 406) 但是,如果我尝试这样做:
request.accept = Mime::JSON.to_s
get :index, {}, {}
expect(response.status).to eq(200)
请求接受头设置为“application/json”,测试通过。
所以我确实有一个解决方法,但我认为我可以在使用 get method 时设置不同的标题。我什至尝试了 cmets 所说的 here。我错过了什么 'Accept' => Mime::JSON 不起作用?
谢谢
【问题讨论】:
标签: json ruby-on-rails-4 rspec