如何测试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"
如果你得到那么对象返回上述保存到一个变量,并查看其内容
希望它能帮助!
答
我使用高级REST客户端(ARC)的Chrome插件:https://advancedrestclient.com/
然后就开始你的轨道服务器(rails s
),并在你的路线流行到ARC(即localhost:3000/requests
)。借助ARC,您可以选择GET,POST,PUT等等!你甚至可以在你的文章中添加params,这听起来就像你需要的那样。
然后在控制台中,观察rails服务器发生了什么,或者看看ARC返回的是什么json输出。
有错误信息。 [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' –
你能否看到你是否需要追加/之前像'/ requests' – uday
处理方式RequestsController#创建作为JSON 完成500内部服务器错误在2ms的 NoMethodError(未定义的方法'保存”的零:NilClass): 应用程序/控制器/ requests_controller.rb:4:在'创建 –