【发布时间】:2015-02-13 15:53:15
【问题描述】:
我对 Rails 还很陌生,我正在尝试从控制器操作中返回一个 javascript 文件。在 TDD 方式中,我首先尝试编写一个失败的测试,虽然我已经解决了许多自启动以来它失败的原因,但我现在遇到了一个我不知道如何修复的错误。如果我在浏览器中运行它,它可以工作。但是运行规范我得到一个错误“ActionController::UnknownFormat”指向respond_to do |format|行。
这是控制器动作...
def job_board
respond_to do |format|
format.js
end
end
还有我的规格
require 'rails_helper'
RSpec.describe ApiController, :type => :controller do
describe "when using an invalid url/api key" do
it "should return error" do
get :job_board
expect(response).to have_http_status(400) #bad request
end
end
end
最后是我的路线。
Rails.application.routes.draw do
get 'api/job_board' => 'api#job_board', defaults: { format: 'js'}
end
知道为什么规范会抛出这个错误吗?谢谢。
【问题讨论】:
-
你试过使用 format.json 吗?
-
奇怪的是,无论我列出什么格式(format.json、format.html 等),它都会在上面一行继续出错 - respond_to do |format|
-
尝试在您的 routes.rb 文件中删除 ', defaults: { format: 'js' }'?
-
如果我删除它,它也会在浏览器中中断并显示相同的错误消息。
-
搞清楚了。我不得不更改规范中的 get :job_board 以获取 :job_board, format: :js
标签: ruby-on-rails-4 rspec-rails