如何测试JSON路由和控制器在rails控制台

如何测试JSON路由和控制器在rails控制台

问题描述:

我有一个控制器设置为处理routes.db中的json请求。我如何测试它是否在rails控制台中工作?如何测试JSON路由和控制器在rails控制台

这是我的路线。

post '/requests', to: 'requests#create', :defaults => { :format => 'json' } 

控制器

class RequestsController < ApplicationController 
    respond_to :json 

def create 
if @object.save 
    render json: { success: t(:success_message) }, status: :ok 
else 
    render json: { errors: @object.errors.joins(', ') }, status: :unprocessab$ 
end 

末 结束

月做这样的事情在轨控制台?

>> app.post "/requests" 

如果你得到那么对象返回上述保存到一个变量,并查看其内容

希望它能帮助!

+0

有错误信息。 [6] pry(main)> app.post“requests” URI :: InvalidURIError:bad URI(不是URI?): http://www.requests.com:80requests from/usr/local/rvm/rubies/ruby​​- 2.4.1/lib/ruby​​/2.4.0/uri/rfc3986_parser.rb:67:在'split' –

+1

你能否看到你是否需要追加/之前像'/ requests' – uday

+0

处理方式RequestsController#创建作为JSON 完成500内部服务器错误在2ms的 NoMethodError(未定义的方法'保存”的零:NilClass): 应用程序/控制器/ requests_controller.rb:4:在'创建 –

我使用高级REST客户端(ARC)的Chrome插件:https://advancedrestclient.com/

然后就开始你的轨道服务器(rails s),并在你的路线流行到ARC(即localhost:3000/requests)。借助ARC,您可以选择GET,POST,PUT等等!你甚至可以在你的文章中添加params,这听起来就像你需要的那样。

然后在控制台中,观察rails服务器发生了什么,或者看看ARC返回的是什么json输出。