【发布时间】:2023-03-16 12:35:02
【问题描述】:
我正在尝试测试的渲染 json 调用只是一个简单的问题。我仍在学习 rspec,并且已经尝试了所有方法,但似乎无法使其正常工作。我不断收到 ActionController::RoutingError,即使我定义了路由并且对 api 本身的调用有效。
在我的控制器中,我有方法:
class PlacesController < ApplicationController
def objects
@objects = Place.find(params[:id]).objects.active
render json: @objects.map(&:api)
end
end
使用渲染json:@objects.map(&:api),我在Object模型中调用api方法
class Object
def api
{ id: id,
something: something,
something_else: something_else,
etc: etc,
...
}
end
end
我的路线文件:
get "places/:id/objects" => "places#objects"
我的 rspec:spec/controllers/places_controller_spec.rb
describe "objects" do
it "GET properties" do
m = FactoryGirl.create :object_name, _id: "1", shape: "square"
get "/places/#{m._id}/objects", {}, { "Accept" => "application/json" }
expect(response.status).to eq 200
body = JSON.parse(response.body)
expect(body["shape"]).to eq "square"
end
end
我不断收到错误
Failure/Error: get "/places/1/objects", {}, { "Accept" => "application/json" }
ActionController::RoutingError:
No route matches {:controller=>"places", :action=>"/places/1/objects"}
任何帮助将不胜感激,谢谢。
【问题讨论】:
标签: ruby-on-rails json rspec